Google Cloud Dataproc - sc.textFile() 命令上的作业文件错误
Google Cloud Dataproc - job file erroring on sc.textFile() command
这是我通过 UI
在 Dataproc 中作为 PySpark 作业提交的文件
# Load file data fro Google Cloud Storage to Dataproc cluster, creating an RDD
# Because Spark transforms are 'lazy', we do a 'count()' action to make sure
# we successfully loaded the main data file
allFlt = sc.textFile("gs://mybucket/mydatafile")
allFlt.count()
# Remove header from file so we can work w data ony
header = allFlt.take(1)[0]
dataOnly = allFlt.filter(lambda line: line != header)
它启动然后出错
allFlt = sc.textFile("gs://thomtect/flightinfo")
NameError: name 'sc' is not defined
这是为什么? Dataproc 不应该已经建立了 spark 上下文吗?我需要在我的代码中添加什么才能被接受为 Spark 命令
https://cloud.google.com/dataproc/submit-job 有一个示例 python spark 作业提交。
简短的回答是将以下内容添加到脚本的顶部:
#!/usr/bin/python
import pyspark
sc = pyspark.SparkContext()
并进一步说明为什么需要这样做:当 Dataproc 运行 python 脚本时,它使用 spark-submit (http://spark.apache.org/docs/latest/submitting-applications.html) 而不是 运行 pyspark shell.
这是我通过 UI
在 Dataproc 中作为 PySpark 作业提交的文件# Load file data fro Google Cloud Storage to Dataproc cluster, creating an RDD
# Because Spark transforms are 'lazy', we do a 'count()' action to make sure
# we successfully loaded the main data file
allFlt = sc.textFile("gs://mybucket/mydatafile")
allFlt.count()
# Remove header from file so we can work w data ony
header = allFlt.take(1)[0]
dataOnly = allFlt.filter(lambda line: line != header)
它启动然后出错
allFlt = sc.textFile("gs://thomtect/flightinfo")
NameError: name 'sc' is not defined
这是为什么? Dataproc 不应该已经建立了 spark 上下文吗?我需要在我的代码中添加什么才能被接受为 Spark 命令
https://cloud.google.com/dataproc/submit-job 有一个示例 python spark 作业提交。
简短的回答是将以下内容添加到脚本的顶部:
#!/usr/bin/python
import pyspark
sc = pyspark.SparkContext()
并进一步说明为什么需要这样做:当 Dataproc 运行 python 脚本时,它使用 spark-submit (http://spark.apache.org/docs/latest/submitting-applications.html) 而不是 运行 pyspark shell.