【问题标题】:How to submit pyspark jobs in Apache livy?如何在 Apache livy 中提交 pyspark 作业?
【发布时间】:2018-07-12 13:13:30
【问题描述】:
spark-submit --packages com.databricks:spark-redshift_2.11:2.0.1 --jars /usr/share/aws/redshift/jdbc/RedshiftJDBC4.jar /home/hadoop/test.py

如何以 Apache livy 格式指定上述 (pyspark) spark-submit 命令?

我尝试了以下方法:

    curl -X POST --data '{"file": "/home/hadoop/test.py", "conf": 
    {"com.databricks": "spark-redshift_2.11:2.0.1"}, \
    "queue": "my_queue", "name": "Livy  Example",  "jars" : 
    "/usr/share/aws/redshift/jdbc/RedshiftJDBC4.jar"}', \
    -H "Content-Type: application/json" localhost:8998/batches

Refered the following livy article spark livy rest api

同样出现以下错误:

"Unexpected character ('“' (code 8220 / 0x201c)): was expecting double-quote to start field name\n at [Source: (org.eclipse.jetty.server.HttpInputOverHTTP); line: 1, column: 37]

【问题讨论】:

  • 您是否剪切和粘贴错误,或者您的数据中有那些智能引号? (参见confcom.databricks ...)
  • 让我检查一下...
  • 还是同样的错误。

标签: apache-spark hadoop pyspark amazon-emr


【解决方案1】:

你的命令有误,请用下面的例子来构造命令。

spark-submit 命令

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \

--jars a.jar,b.jar \

--pyFiles a.py,b.py \

--files foo.txt,bar.txt \

--archives foo.zip,bar.tar \

--master yarn \

--deploy-mode cluster \

--driver-memory 10G \

--driver-cores 1 \

--executor-memory 20G \

--executor-cores 3 \

--num-executors 50 \

--queue default \

--name test \

--proxy-user foo \

--conf spark.jars.packages=xxx \

/path/to/examples.jar \

1000

Livy REST JSON 协议

{
“className”: “org.apache.spark.examples.SparkPi”,

“jars”: [“a.jar”, “b.jar”],

“pyFiles”: [“a.py”, “b.py”],

“files”: [“foo.txt”, “bar.txt”],

“archives”: [“foo.zip”, “bar.tar”],


“driverMemory”: “10G”,

“driverCores”: 1,

“executorCores”: 3,

“executorMemory”: “20G”,

“numExecutors”: 50,

“queue”: “default”,

“name”: “test”,

“proxyUser”: “foo”,

“conf”: {“spark.jars.packages”: “xxx”},

“file”: “hdfs:///path/to/examples.jar”,

“args”: [1000],

}

--包。使用此命令时将处理所有传递依赖项。

在 Livy 中,您需要转到解释器设置页面并在 livy 设置下添加新属性 -

livy.spark.jars.packages

以及价值

com.databricks:spark-redshift_2.11:2.0.1 

重新启动解释器并重试查询。

【讨论】:

  • --packages com.databricks:spark-redshift_2.11:2.0.1 如何指定 spark 提交中给出的这个包部分。
  • 试试 "spark.jars.packages":"com.databricks:spark-redshift_2.11:2.0.1"
  • "conf": {"spark.jars.packages": "com.databricks:spark-redshift_2.11:2.0.1"},我收到无效的 json 错误 scala 错误,我不能粘贴确切的错误,因为我离开工作地点。
  • 进入解释器设置页面,并在 livy 设置下添加新属性 - livy.spark.jars.packages 和值 com.databricks:spark-redshift_2.11:2.0.1 重新启动解释器并重试查询。
  • @vaquarkhan 如何将 pyspark 作业提交给 livy。 “文件”字段将是 pyspark 文件吗?在上面的 sn-p 中包含“file”:“hdfs:///path/to/examples.jar”。 pyspark 应该是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2019-03-20
  • 1970-01-01
  • 2019-06-11
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多