Spark 2.4.0 Avro Java-无法解析from_avro方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spark 2.4.0 Avro Java-无法解析from_avro方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2029字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试从包含Avro消息的kafka队列中运行火花流.
按照https://spark.apache.org/docs/latest/sql-data-sources-avro.html,我应该能够使用from_avro将列值转换为Dataset< Row>.
但是,我无法编译该项目,因为它抱怨找不到from_avro.我可以看到在依赖项的package.class中声明的方法-请参见所附的屏幕截图.
如何在本地Java代码中使用org.apache.spark.sql.avro中的from_avro方法?
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import static org.apache.spark.sql.functions.*;
import org.apache.spark.sql.avro.*;
public class AvroStreamTest {
public static void main(String[] args) throws IOException, InterruptedException {
// Creating local sparkSession here...
Dataset<Row> df = sparkSession
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "host:port")
.option("subscribe", "avro_queue")
.load();
// Cannot resolve method 'from_avro'...
df.select(from_avro(col("value"), jsonFormatSchema)).writeStream().format("console")
.outputMode("update")
.start();
}
}
pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<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.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-avro_2.11</artifactId>
<version>2.4.0</version>
</dependency>
<!-- more dependencies below -->
</dependencies>
看来Java无法从sql.avro.package.class导入名称
解决方法:
因为生成了类名,所以将其作为import org.apache.spark.sql.avro.package $导入;然后使用package $.MODULE $.from_avro(…)应该可以工作
内容总结
以上是互联网集市为您收集整理的Spark 2.4.0 Avro Java-无法解析from_avro方法全部内容,希望文章能够帮你解决Spark 2.4.0 Avro Java-无法解析from_avro方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。