【问题标题】:Installing spark-avro安装 spark-avro
【发布时间】:2016-11-17 06:12:42
【问题描述】:

我正在尝试读取 pyspark 中的 avro 文件。 从How to read Avro file in PySpark 发现 spark-avro 是最好的方法,但我不知道如何从他们的Github repo 安装它。没有可下载的jar,我自己构建吗?怎么样?

它是在集群上运行的 Spark 1.6 (pyspark)。我没有设置它,所以对配置不太了解,但我有 sudo 访问权限,所以我想我应该能够安装东西。但是这台机器不能直接上网,所以需要手动复制和安装东西。

谢谢。

【问题讨论】:

    标签: pyspark spark-avro


    【解决方案1】:

    您可以在运行pysparkspark-submit 时将spark-avro 添加为一个包:https://github.com/databricks/spark-avro#with-spark-shell-or-spark-submit 但这需要驱动程序上的互联网访问(驱动程序随后会将所有文件分发给执行程序)。

    如果您在驱动程序上无法访问互联网,则需要将spark-avro 自己构建到一个胖罐子中:

    git clone https://github.com/databricks/spark-avro.git
    cd spark-avro
    # If you are using spark package other than newest, 
    # checkout appropriate tag based on table in spark-avro README, 
    # for example for spark 1.6:
    # git checkout v2.0.1 
    ./build/sbt assembly
    

    然后使用 pyspark shell 进行测试:

    ./bin/pyspark --jars ~/git/spark-avro/target/scala-2.11/spark-avro-assembly-3.1.0-SNAPSHOT.jar
    
    >>> spark.range(10).write.format("com.databricks.spark.avro").save("/tmp/output")
    >>> spark.read.format("com.databricks.spark.avro").load("/tmp/output").show()
    +---+
    | id|
    +---+
    |  7|
    |  8|
    |  9|
    |  2|
    |  3|
    |  4|
    |  0|
    |  1|
    |  5|
    |  6|
    +---+
    

    【讨论】:

    • 如何为 spark-avro 构建一个 fat jar?
    • 克隆 spark-avro 存储库并运行 build/sbt assembly
    • 它说'尝试获取 sbt 我们尝试在本地下载 sbt 到 build/sbt-launch-0.13.11.jar 失败。请从scala-sbt.org手动安装sbt`
    • 在连接到互联网的系统上构建 fat jar。然后将文件复制到驱动程序并使用--jars启动spark。
    • 卡在Getting org.scala-sbt sbt 0.13.11 ... downloading https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.6/scala-library-2.10.6.jar ... 很长一段时间...否则我的互联网很好
    【解决方案2】:

    应该可以

    wget https://repo1.maven.org/maven2/org/apache/spark/spark-avro_2.11/${SPARK_VERSION}/spark-avro_2.11-${SPARK_VERSION}.jar -P $SPARK_HOME/jars/                                                        
    
    echo spark.executor.extraClassPath $SPARK_HOME/jars/spark-avro_2.11-$SPARK_VERSION.jar >>  /usr/local/spark/conf/spark-defaults.conf                                                                    
    
    echo spark.driver.extraClassPath $SPARK_HOME/jars/spark-avro_2.11-$SPARK_VERSION.jar >>  /usr/local/spark/conf/spark-defaults.conf
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2019-09-25
      • 2016-11-22
      相关资源
      最近更新 更多