快捷搜索: 王者荣耀 脱发

spark代码,诡异的现象

spark代码,诡异的现象

背景

用以前学习用而搭建的local模式spark环境,运行以下代码,则报错,而我很久之前,很清楚的记得这样跑是没有问题的,明明这样写是可以正确读取本地文件的

> sc.textFile("/home/hivedata/word.txt").flatMap(_.split("
> ")).map((_,2)).reduceByKey(_*_).toDF("idd","score").show

分析及debug

    记得当时学习的时候将spark-2.4.5-bin-hadoop2.7.tgz 解压后不做任何修改就可以跑起来,这环境过了几个月再回来用,怎么就跑不起来了呢 spark默认是读取HDFS上的文件,sc.textFile("/home/hivedata/word.txt")这样的写法也相当与sc.textFile("hdfs:/home/hivedata/word.txt") 而若想读取本地文件,则应写成sc.textFile("file:///home/hivedata/word.txt") 但脑海里很清晰的记得几个月前,这样敲进去的代码是可以跑起来的,故继续一顿百度操作

结果及结论

经过一番检查是我在某时刻修改了spark的配置(/conf/spark-env.sh)

如红框所示,配置了HADOOP_CONF_DIR后,默认会先连接hadoop,若此处不配置,则只会从本地读取,注释此处配置后,又可以愉快的像以前那样简单敲代码并且只从本地读取了。

经验分享 程序员 微信小程序 职场和发展