ClassNotFoundException:找不到数据源:bigquery

我正在尝试将数据从 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”。


慕运维8079593
浏览 86回答 3
3回答

MM们

我认为您只添加了 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。

牧羊人nacy

我遇到了同样的问题,并将格式从“bigquery”更新为“com.google.cloud.spark.bigquery”,这对我有用。

慕森王

在 build.sbt 中指定依赖项并按照 Peter 建议的格式使用“com.google.cloud.spark.bigquery”为我解决了这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java