我必须从包含原始文本文件路径的文本文件中创建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吗?
答案 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()