首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用spark-avro数据源创建Spark应用程序并通过'java -jar‘执行它吗?

可以使用spark-avro数据源创建Spark应用程序并通过'java -jar‘执行它吗?
EN

Stack Overflow用户
提问于 2019-05-06 20:18:17
回答 1查看 55关注 0票数 0

我有一个java应用程序,它使用spark从各种数据源(hadoop、本地文件系统等)访问数据。各种格式(json、avro等)。

代码语言:javascript
复制
   SparkSession spark = SparkSession
        .builder()
        .appName("Spark app")
        .master("local")
        .getOrCreate();
    Dataset<Row> dataset = spark
        .read()
        .format(FORMAT)) // avro, json, ...
        .load(FILEPATH);

我能够创建fat jar并通过"java -jar“运行它。只要我使用JSON作为“格式”,就没有问题。但如果将"JSON“替换为"AVRO”,则会抛出该Failed to find data source: AVRO. Avro is built-in but external data source module since Spark 2.4异常。如果我直接在(IDE)中运行它,那么avro也可以运行,但如果它是在jar中运行的,那么它只能运行JSON。

我知道avro是spark的外部数据源,它必须以某种方式添加到spark中,但我不知道如何以及是否可以仅通过java -jar app.jar -param -param1运行这样的应用程序

EN

回答 1

Stack Overflow用户

发布于 2019-05-07 16:19:42

问题出在maven构建插件中。我使用的是maven-assembly-plugin,但当我将它替换为maven-shade-plugin时,一切都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56005071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档