spark学习:1.textFile函数
使⽤前先修改打印等级,不然结果不好看,输出⼀堆INFO信息
text函数什么意思修改path /conf/log4j.properties配置⽂件
1.使⽤ pyspark
本地读取两种⽅式:
dd = sc.textFile("file:///workdir/bak_conf/l")
dd = sc.textFile("/workdir/bak_conf/l")
均出现错误
17/09/0516:03:31 WARN TaskSetManager: Lost task 0.0in stage 1.0 (TID 5, 192.168.120.141, executor 1): java.io.FileNotFoundException: File file:/workd at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:611)
at org.apache.hadoop.FileLinkStatusInternal(RawLocalFileSystem.java:824)
at org.apache.hadoop.FileStatus(RawLocalFileSystem.java:601)
at org.apache.hadoop.FileStatus(FilterFileSystem.java:421)
at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:142)
at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:346)
at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:769)
.......(略)
结论:
pyspark下默认为集模式(spark-shell等均相同),
如果你是在集的环境下运⾏,必须确保所有的节点上的同个⽂件夹都有该⽂件,即你这台物理即上
和其他集物理机上在相同的路径下有
相同的⽂件(试过路径加file://和不加都⼀样),或者你可以使⽤HDFS
(例sc.textFile(“hdfs://master:9000/workdir/testfile”))就不会出现此问题
2.使⽤spark-submit
local模式:
conf = SparkConf().setMaster("local").setAppName("My test")
使⽤hdfs 和 本地都可以
集模式:
conf=SparkConf().setMaster("spark://master:7077").setAppName("My test")
结果与使⽤pyspark相同
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论