【发布时间】:2019-05-06 12:18:17
【问题描述】:
我有一个 java 应用程序,它使用 spark 以各种格式(json、avro、...)从各种数据源(hadoop、本地文件系统、..)访问数据。
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 运行此类应用程序
【问题讨论】:
标签: java maven apache-spark avro