如何打开存储在HDFS中的文件 - 这里的输入文件来自HDFS - 如果我提供的文件如下,我将无法打开,它将显示为未找到的文件
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:
但那也没有用
答案 0 :(得分:1)
要将textfile
读入rdd
:
rdd_name = sc.textFile("/user/sachinkerala6174/inData/movieStat")
您可以使用collect()
在纯python中使用它(不推荐 - 仅在非常小的数据上使用),或使用spark rdd
方法来使用{{1}来操作它方法(推荐方式)
更多信息pyspark API:
textFile(name,minPartitions = None,use_unicode = True)
从HDFS读取文本文件,这是一个本地文件系统(全部可用) 节点),或任何Hadoop支持的文件系统URI,并将其作为一个返回 字符串RDD。
如果use_unicode为False,则字符串将保持为str(编码为 utf-8),比unicode更快更小。 (在Spark 1.2中添加)
pyspark