Google Cloud Dataproc - sc.textFile()命令上的作业文件错误

时间:2016-02-11 01:14:42

标签: google-cloud-dataproc

这是我通过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命令

1 个答案:

答案 0 :(得分:3)

https://cloud.google.com/dataproc/submit-job有一个示例python spark job提交。

简短的回答是将以下内容添加到脚本的顶部:

#!/usr/bin/python
import pyspark
sc = pyspark.SparkContext()

为了扩展一下为什么需要这样做:当Dataproc运行python脚本时,它使用spark-submit(http://spark.apache.org/docs/latest/submitting-applications.html)而不是运行pyspark shell。