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,若此处不配置,则只会从本地读取,注释此处配置后,又可以愉快的像以前那样简单敲代码并且只从本地读取了。
上一篇:
JS实现多线程数据分片下载