从包含实际文件路径的文本文件制作rdd

时间:2019-06-18 08:45:11

标签: apache-spark rdd

我必须从包含原始文本文件路径的文本文件中创建rdd。我有一个包含三个文件的目录- hw2-file.txt hw2-file-10mb.txt (实际文本文件)和 hw2.ipynb < / strong>,这是我需要处理的Jupyter笔记本。我的 hw2-file.txt 包含

  

/ home / kriti / Downloads / local test / hw2-file-10mb.txt

然后我运行了以下代码-

with open('./hw2-files.txt') as f:
    file_path= [w.strip() for w in f.readlines() if w.strip()]
lines= sc.textFile(file_path)
lines.cache().count()  

并出现以下错误-

  

Py4JJavaError:调用时发生错误   z:org.apache.spark.api.python.PythonRDD.collectAndServe。 :   org.apache.hadoop.mapred.InvalidInputException:输入路径不正确   存在:文件:/ home / kriti / Downloads /本地测试/ file_path

还有其他方法可以将这种类型的文本文件读入RDD吗?

1 个答案:

答案 0 :(得分:0)

如果您只想从目录中读取文本文件,则可以使用带有后缀*.txt的路径。

您可以在pySpark中编写以下代码。

//Reading Path from file hw2-file.txt
    >>> pathlist = sc.textFile(<path of hw2-file.txt>).collect()

    //Cast RDD value into String like    
    // "/home/kriti/Downloads/local test/hw2-file-10mb.txt"
    >>> path = str("".join(pathlist)) 

  //data of hw2-file-10mb.txt file
    >>> rdd  = sc.textFile(path) 
    >>>rdd.count()