2016-08-01 84 views
0

我想从Zeppelin笔记本中读取位于Amazon S3中的avro文件。我理解Databricks有一个很好的包spark-avro。为了将这个jar文件引导到我的集群并使其工作,我需要采取哪些步骤?引导Amazon EMR集群的spark-avro jar

当我写这在我的笔记本上, val df = sqlContext.read.avro("s3n://path_to_avro_files_in_one_bucket/")

我得到下面的错误 - <console>:34: error: value avro is not a member of org.apache.spark.sql.DataFrameReader

我有看this。我猜那里发布的解决方案不适用于最新版本的Amazon EMR。

如果有人能给我指针,那真的会有所帮助。

回答

0

下面是我如何关联spark-avro依赖关系。此方法适用于关联任何其他依赖关系以进行触发。

  1. 确保您的火花版本与您的spark-avro兼容。你会发现依赖关系here的细节。

  2. 我把我的spark-avro文件放到我的S3存储桶中。您可以使用hdfs或任何其他商店。

  3. 当启动一个EMR集群,添加以下JSON在配置方面, [{"classification":"spark-defaults", "properties":{"spark.files":"/path_to_spark-avro_jar_file", "spark.jars":"/path_to_spark-avro_jar_file"}, "configurations":[]}]

这是不是这样做的唯一途径。请参阅此link了解更多详情。