【问题标题】:Bootstrapping spark-avro jar to Amazon EMR cluster将 spark-avro jar 引导到 Amazon EMR 集群
【发布时间】:2016-08-01 16:22:54
【问题描述】:

我想从 Zeppelin 笔记本中读取位于 Amazon S3 中的 avro 文件。我知道 Databricks 有一个很棒的包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。

如果有人能给我指点,那真的很有帮助。

【问题讨论】:

    标签: amazon-web-services amazon-emr spark-avro


    【解决方案1】:

    这是我关联 spark-avro 依赖项的方式。此方法适用于将任何其他依赖项关联到 spark。

    1. 确保您的 spark 版本与您的 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。

    【讨论】:

      【解决方案2】:

      另一个选项是将 --dependencies 选项添加到 spark-shell 或 spark submit(这是用于 spark 2.x)

      --packages com.databricks:spark-avro_2.11:4.0.0

      【讨论】:

        猜你喜欢
        • 2015-05-05
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 2018-04-11
        • 1970-01-01
        • 1970-01-01
        • 2017-07-17
        相关资源
        最近更新 更多