在pyspark中加载Databricks csv库

时间:2015-10-27 05:36:05

标签: csv apache-spark pyspark google-cloud-dataproc

我尝试在我使用Google Dataproc创建的spark群集上加载databricks csv库(参见https://github.com/databricks/spark-csv)。所有这一切都使用PySpark。

我发布了PySpark并输入了:

spark-submit --packages com.databricks:spark-csv_2.11:1.2.0 --verbose

但我得到了这个答案:

Using properties file: /usr/lib/spark/conf/spark-defaults.conf
Adding default property: spark.executor.extraJavaOptions=-Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
Adding default property: spark.history.fs.logDirectory=file:///var/log/spark/events
Adding default property: spark.eventLog.enabled=true
Adding default property: spark.driver.maxResultSize=937m
Adding default property: spark.shuffle.service.enabled=true
Adding default property: spark.yarn.historyServer.address=fb-cluster-1-m:18080
Adding default property: spark.driver.memory=1874m
Adding default property: spark.dynamicAllocation.maxExecutors=100000
Adding default property: spark.scheduler.minRegisteredResourcesRatio=0.0
Adding default property: spark.yarn.am.memory=2176m
Adding default property: spark.driver.extraJavaOptions=-Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
Adding default property: spark.master=yarn-client
Adding default property: spark.executor.memory=2176m
Adding default property: spark.eventLog.dir=file:///var/log/spark/events
Adding default property: spark.dynamicAllocation.enabled=true
Adding default property: spark.executor.cores=1
Adding default property: spark.yarn.executor.memoryOverhead=384
Adding default property: spark.dynamicAllocation.minExecutors=1
Adding default property: spark.dynamicAllocation.initialExecutors=100000
Adding default property: spark.akka.frameSize=512
Error: Must specify a primary resource (JAR or Python or R file)
Run with --help for usage help or --verbose for debug output

这与文档https://github.com/databricks/spark-csv结合https://github.com/databricks/spark-csv/issues/59

上的帖子lebigot相矛盾

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

看起来你试图在pyspark shell中运行spark-submit命令。请注意,spark-submit命令用于群集上的configuring and launching bundled applications,而spark-shellpyspark命令用于创建shell环境,这一点非常重要。一个预先实例化的SparkContext,用于在shell的上下文中运行spark命令。 Command line usage of the shellspark-submit非常相似,所以在您的情况下,如果要包含spark-csv包,则必须如下所示启动shell:

pyspark --packages com.databricks:spark-csv_2.11:1.2.0 

要回答评论中的其他问题,提供给--packages标志的输入是一个Maven坐标列表,它映射到要搜索的jar并添加到驱动程序/执行程序类路径之前工作开始了。搜索的存储库默认情况下将是您的本地Maven存储库和Maven中心(以及在--repositories标志下定义的任何其他存储库)。如果您之前没有在本地Maven存储库中安装该软件包,它将从Maven中心下载,然后在您再次使用该jar时从本地获取。