【发布时间】:2021-01-14 13:54:06
【问题描述】:
以下是大约 30GB 示例文件中的几行
### s3://mybucket/tmp/file_in.txt
"one"|"mike"|"456"|"2010-01-04"
"two"|"lisa"|"789"|"2011-03-08"
"three"|"ann"|"845"|"2012-06-11"
我想使用 PySpark 来...
- 使用 spark 的并行性读取文本文件
- 将“n”字符替换为“X”
- 将更新后的文本输出到相同格式的新文本文件中
所以生成的文件如下所示:
### s3://mybucket/tmp/file_out.txt
"oXe"|"mike"|"456"|"2010-01-04"
"two"|"lisa"|"789"|"2011-03-08"
"three"|"aXX"|"845"|"2012-06-11"
我尝试了各种方法来完成这个看似简单的任务......
data = sc.textFile('s3://mybucket/tmp/file_in.txt')
def make_replacement(row):
result = row.replace("n", "X")
return result
out_data = data.map(make_replacement).collect()
#out_data = data.map(lambda line: make_replacement(line)).collect()
out_data.coalesce(1).write.format("text").option("header", "false").save("s3://mybucket/tmp/file_out.txt")
但我仍然看到以下错误:
An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 4 times, most recent failure: Lost task 0.3 in stage 3.0 (TID 21, <<my_server>>, executor 9): java.lang.RuntimeException: Failed to run command: /usr/bin/virtualenv -p python3 --system-site-packages virtualenv_application....
at org.apache.spark.api.python.VirtualEnvFactory.execCommand(VirtualEnvFactory.scala:120)
注意:使用read.csv或dataframe的解决方案将不适用于此问题
有关如何解决此问题的任何建议?
【问题讨论】:
-
您的问题似乎与 Python virtualenv 有关,而不是代码本身
标签: apache-spark pyspark amazon-emr