spark java 写入文本_Apache Spark之文件读写

除了对本地文件系统进行读写以外,Spark还支持很多常见的文件格式(文本文件、JSON)和文件系统(HDFS)和数据库(MySQL、Hive、Hbase)。

1.文件系统的数据读写

1.1本地文件系统的数据读写

在本机上的/usr/local/spark/spark-2.2.0-bin-hadoop2.7/examples/src/main/resources 目录下新建一个TXT文件。文件内容如下:

a7c382665f48

image.png

要加载本地文件,必须采用“file:///”开头的这种格式。执行上上面这条命令以后,并不会马上显示结果,因为,Spark采用惰性机制,只有遇到“行动”类型的操作,才会从头到尾执行所有操作。

通过SparkContext的textFile方法逐行加载文件中的数据,然后以, 作为分隔符,将每一行的字符串切分为一个只包含两个元素(分别代表name和age)的字符串数组。

#加载本地文件

var file = sc.textFile("file:///usr/local/spark/spark-2.2.0-bin-hadoop2.7/examples/src/main/resources/people.txt")

#取第一行的数据

file.first()

a7c382665f48

image.png

#将file变量内容保存在另一个文件中

file.saveAsFile("file:///usr/local/spark/spark-2.2.0-bin-hadoop2.7/examples/src/main/resources/user.txt")

1.2分布式文件系统HDFS的数据读写

首先要启动HDFS文件系统

nohup hive --service metastore > metastore.log 2>&1 &

然后进入/usr/local/hadoop/hadoop-2.8.2/bin 创建HDFS文件路径

#user为指定目录,root为登录Linux系统的用户名

#hdfs://master:9000/user/root

hdfs dfs -mkdir -p /user/root

将people.txt 文件上传到HDFS文件系统中(放到root用户下)

#上传文件

hdfs dfs -put /usr/local/spark/spark-2.2.0-bin-hadoop2.7/examples/src/main/resources/people.txt

#查看文件系统中的文件

hdfs dfs -ls .

#查看文件内容

hdfs dfs -cat ./people.txt

a7c382665f48

image.png

现在,让我们切换回到spark-shell窗口,编写语句从HDFS中加载people.txt文件,并显示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值