我正在尝试将数据从 Google BigQuery 加载到在 Google Dataproc 上运行的 Spark(我正在使用 Java)。我尝试按照此处的说明进行操作:https ://cloud.google.com/dataproc/docs/tutorials/bigquery-connector-spark-example我收到错误:“ ClassNotFoundException: Failed to find data source: bigquery。”我的 pom.xml 如下所示:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.virtualpairprogrammers</groupId> <artifactId>learningSpark</artifactId> <version>0.0.3-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>com.google.cloud.spark</groupId> <artifactId>spark-bigquery_2.11</artifactId> <version>0.9.1-beta</version> <classifier>shaded</classifier> </dependency> </dependencies>将依赖项添加到我的 pom.xml 后,它会下载大量内容来构建 .jar,所以我认为我应该拥有正确的依赖项?然而,Eclipse 还警告我“从未使用过 import com.google.cloud.spark.bigquery”。
3 回答
MM们
TA贡献1886条经验 获得超2个赞
我认为您只添加了 BQ 连接器作为编译时依赖项,但在运行时缺少它。您需要制作一个 uber jar,其中包含作业 jar 中的连接器(需要更新文档),或者在提交作业时包含它gcloud dataproc jobs submit spark --properties spark.jars.packages=com.google.cloud.spark:spark-bigquery_2.11:0.9.1-beta
。
慕森王
TA贡献1777条经验 获得超3个赞
在 build.sbt 中指定依赖项并按照 Peter 建议的格式使用“com.google.cloud.spark.bigquery”为我解决了这个问题。
添加回答
举报
0/150
提交
取消