当前位置: 首页 > 知识库问答 >
问题:

无法使用spark sql读取kafka

曾光誉
2023-03-14

我正在尝试使用spark阅读Kafka,但我想我会遇到一些图书馆相关的问题。

            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.11</artifactId>
            <version>2.4.3</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql-kafka-0-10 -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
            <version>2.4.3</version>
            <scope>provided</scope>
        </dependency>
SparkSession spark = SparkSession.builder()
                .appName("kafka-tutorials")
                .master("local[*]")
                .getOrCreate();

        Dataset<Row> rows = spark.readStream().
                format("kafka").option("kafka.bootstrap.servers", "localhost:9092")
                .option("subscribe", "meetup-trending-topics")
                .option("startingOffsets", "latest")
                .load();

        rows.writeStream()
                .outputMode("append")
                .format("console")
                .start();

        spark.streams().awaitAnyTermination();
        spark.stop();

线程“main”org.apache.spark.sql.AnalysisException中出现异常:找不到数据源:Kafka。请按照“结构化流媒体+Kafka集成指南”的部署部分部署应用程序。;在org.apache.spark.sql.execution.datasources.datasource$.lookupdatasource(datasource.scala:652)在org.apache.spark.sql.streaming.datastreamreader.load(datasreamreader.scala:161)

解决方案:-两者之一:1)创建uber jar或ii)-packages org.apache.spark:spark-sql-kafka-0-102.11:2.4.3我在mainclass之后提供了-packagesorg.apache.spark:spark-sql-kafka-0-102.11:2.4.3选项。

共有1个答案

东郭元魁
2023-03-14

这个:

<scope>provided</scope>

意味着您负责提供适当的JAR。我(和许多其他人)更喜欢避免使用这个作用域,而是构建一个uberjar来部署。

 类似资料:
  • 我正在尝试使用SparkSQL将我的数据库导出到我的S3中的镶木地板格式。 我的一张表包含行大小 Spark似乎有一个限制:使用Avro/Parket的Spark作业中的最大行大小。但不确定是否是这样。 有解决方法吗?

  • 请帮帮我,我是一个完全的傻瓜,当涉及到火花和Haddop一般。我的代码如下所示: 我的Spark集群作为一个集群部署在10.1.50.165中,运行RHEL6,当我运行这段简单的代码时,在尝试读取json文件时,我遇到了如下异常:

  • 我有这样的JSON数据: 从Spark读取数据后,我得到以下模式: 现在,我想从中选择。但是当我尝试选择它时,我得到了。像这样: 尽管如此,当我从df中仅选择children时,效果很好。 我无法理解为什么它会出现异常,即使该列存在于数据帧中。 感谢您的帮助!

  • 我正在尝试使用JAVA填写PDF表单,但当我尝试使用下面的代码获取字段时,列表为空。 然后我尝试使用PDFStripper读取文件 输出如下 “请稍候。。。 如果此消息最终未被文档的正确内容替换,则PDF查看器可能无法显示此类文档。 您可以通过访问升级至最新版本的Adobe Reader for Windows®、Mac或Linux®http://www.adobe.com/go/reader_d

  • 我目前正在为我正在制作的一款游戏进行单元测试,但在maven身上遇到了一个奇怪的错误,我无法理解。 我已经运行了,现在我的测试失败了。 以下是我在运行mvn测试-X时遇到的错误: 这是我的Maven文件: 这是JUnit测试的代码: 下面是我得到错误的代码: 我很确定它与maven文件有关,但我不确定它是什么。也许是我正在使用的图像阅读库?任何帮助都将不胜感激。

  • 我正在从Impala迁移到SparkSQL,使用以下代码读取一个表: 我如何调用上面的SparkSQL,这样它就可以返回这样的东西: