gpt4 book ai didi

apache-spark - Spark加载本地文件(非HDFS)失败

转载 作者:行者123 更新时间:2023-12-03 14:12:36 24 4
gpt4 key购买 nike

我有一个问题-如何在PySpark的sc.textFile加载本地文件(不在HDFS上,不在S3上)。
我读了this article,然后将sales.csv复制到主节点的本地(不是HDFS),最后执行以下命令

sc.textFile("file:///sales.csv").count()


但它返回以下错误,提示 file:/click_data_sample.csv does not exist


Py4JJavaError:调用时发生错误
z:org.apache.spark.api.python.PythonRDD.collectAndServe。 :
org.apache.spark.SparkException:由于阶段失败,作业中止了:
阶段3.0中的任务0失败4次,最近一次失败:丢失任务0.3
在阶段3.0(TID 10,
ip-17x-xx-xx-xxx.ap-northeast-1.compute.internal):
java.io.FileNotFoundException:文件文件:/sales.csv
不存在


我尝试了 file://sales.csvfile:/sales.csv,但是都失败了。

这对您如何加载本地文件给我一个很好的建议非常有帮助。



注1:


我的环境是Amazon emr-4.2.0 + Spark 1.5.2。
所有端口都打开




注2:

我确认可以从HDFS或S3加载文件。

这是从HDFS加载的代码-下载csv,预先复制到hdfs,然后使用sc.textFile(“ / path / at / hdfs”)加载

commands.getoutput('wget -q https://raw.githubusercontent.com/phatak-dev/blog/master/code/DataSourceExamples/src/main/resources/sales.csv')
commands.getoutput('hadoop fs -copyFromLocal -f ./sales.csv /user/hadoop/')
sc.textFile("/user/hadoop/sales.csv").count() # returns "15" which is number of the line of csv file


这是从S3加载的代码-将csv文件预先放在S3,然后使用带有“ s3n://”标志的sc.textFile(“ s3n:// path / at / hdfs”)进行加载。

sc.textFile("s3n://my-test-bucket/sales.csv").count() # also returns "15" 

最佳答案

读取的文件在执行程序节点上发生。为了使代码正常工作,您应该在所有节点上分发文件。

如果Spark驱动程序在文件所在的同一台计算机上运行,​​则可以尝试读取文件(例如,对于Python使用f=open("file").read()),然后调用sc.parallelize将文件内容转换为RDD 。

关于apache-spark - Spark加载本地文件(非HDFS)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com