如何使用open打开pySpark中存储在HDFS中的文件

时间:2016-11-10 07:32:53

标签: apache-spark pyspark

如何打开存储在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:

但那也没有用

1 个答案:

答案 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