Apache spark 如何使用with open在pySpark中打开HDFS中存储的文件
如何打开存储在HDFS中的文件-此处输入文件来自HDFS-如果我以下面的方式提供文件,我将无法打开,它将显示为“未找到文件”Apache spark 如何使用with open在pySpark中打开HDFS中存储的文件,apache-spark,pyspark,Apache Spark,Pyspark,如何打开存储在HDFS中的文件-此处输入文件来自HDFS-如果我以下面的方式提供文件,我将无法打开,它将显示为“未找到文件” from pyspark import SparkConf,SparkContext conf = SparkConf () sc = SparkContext(conf = conf) def getMovieName(): movieNames = {} with open ("/user/sachinkerala6174/inData/movieSt
from pyspark import SparkConf,SparkContext
conf = SparkConf ()
sc = SparkContext(conf = conf)
def getMovieName():
movieNames = {}
with open ("/user/sachinkerala6174/inData/movieStat") as f:
for line in f:
fields = line.split("|")
mID = fields[0]
mName = fields[1]
movieNames[int(fields[0])] = fields[1]
return movieNames
nameDict = sc.broadcast(getMovieName())
我的假设是使用
with open (sc.textFile("/user/sachinkerala6174/inData/movieStat")) as f:
但是将
textfile
读入rdd
也不起作用:
rdd_name = sc.textFile("/user/sachinkerala6174/inData/movieStat")
您可以使用collect()
在纯python中使用它(不推荐-仅在非常小的数据上使用),或者使用sparkrdd
方法使用pyspark
方法操作它(推荐的方法)
更多信息:
textFile(name,minPartitions=None,使用unicode=True)
从本地文件系统HDFS读取文本文件(在所有
节点)或任何Hadoop支持的文件系统URI,并将其作为
字符串的RDD
如果use_unicode为False,则字符串将保留为str(编码为
utf-8),它比unicode更快、更小。(在Spark 1.2中添加)
>>> path = os.path.join(tempdir, "sample-text.txt")
>>> with open(path, "w") as testFile:
... _ = testFile.write("Hello world!")
>>> textFile = sc.textFile(path)
>>> textFile.collect()
[u'Hello world!']