1

我尝试在使用 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上的 post lebigot 相矛盾

有人能帮我吗?

4

1 回答 1

4

看起来您正试图spark-submit在 pyspark shell 中运行命令。需要注意的是,该spark-submit命令用于在集群上配置和启动捆绑的应用程序,而spark-shellorpyspark命令用于创建一个预先实例化的 shell 环境,SparkContext以便您在 shell 上下文中运行 spark 命令。shell 的命令行用法与你的情况非常相似,spark-submit如果你想包含 spark-csv 包,你必须像下面这样启动你的 shell:

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

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

于 2015-10-27T06:21:50.867 回答