我试图在文件中找到一个特定的字符串,然后用另一个特定的字符串替换它。我在用齐柏林飞艇的笔记本。这是我目前的代码。。
%pyspark
import fileinput
import sys
from pyspark import SparkContext
sc = SparkContext.getOrCreate()
hivectx = HiveContext(sc)
file = sc.textFile('PATH/my_query.sql')
file1 = sc.textFile('PATH/my_query1sql')
phrase = "(Month|| '-' || '5' || '-' || year)"
replace ="('5' || '/' || month || '/' || year)"
read = file.collect()
//for i in read:
//print i ---> this successfully prints out my_query.sql file
for i in read:
file1 = file1.map(lambda x: x.replace(phrase, replace))
file1.saveAsTextFile(file1) // im trying to save it as the empty file "PATH/my_query.sql" also known as file1.
但是,我收到以下错误:
AttributeError: 'PipelinedRDD' object has no attribute '_get_object_id'
我在网上找不到任何有关此错误的文档,该错误名为“\u get\u object\u id”。类似的错误说明这是版本问题?
是这样吗?我的代码中有明显的错误吗?对不起,我不懂这门语言
1条答案
按热度按时间mqkwyuun1#
如果您想替换文件中的某个文本模式,您可以尝试以下方法,而不使用spark,这对于像sql查询这样的小文件可能会更有效。
文件在这里被读取并存储到一个列表中,然后replace函数将应用于文件的所有行并将其连接起来。最后,写下你想保存的文件。