背景
自己在使用spark MLlib的时候,在单机下反而比分布式下更快,所以猜测是从本地读数据比较慢,所以想把数据从本地弄到hdfs上
上传数据到hdfs
- 查看hdfs 根目录/下文件,发现有两种
hadoop fs -ls /
hdfs dfs -ls /
- 创建一个新的文件夹/data
Hadoop fs -mkdir /data
- 上传文件到hdfs
hadoop fs -put ~/project/test.txt /data
- 删除文件
hadoop fs -rm /data/xxx
程序中读hdfs中文件
python
先pip install hdfs
from hdfs.client import Client
client = Client("http://dl23:50070")
with client.read(Y_PATH) as fileY:
......
其他的都和正常文件读写一样
- 但是用spark的
sc.textFile()
可像下面这样读:lines = sc.textFile("hdfs://dl23:9000/data/xxx.txt") lines.count()
结果
发现并没有变快,应该是程序问题了