11#
内容分析应用 金牌会员 发表于 2021-8-31 14:54:34 | 只看该作者
spark计算结果做持久化,保存到本地文件的示例:
  1. # 直接保存,会保存成文件夹
  2. read_txt.saveAsTextFile("file:///home/xiaohuzi/spark_exercise/data/save_testfile.txt")

  3. # 先 collect 再保存为 txt
  4. save_to_csv(read_txt.collect())
复制代码


举报 使用道具
12#
内容分析应用 金牌会员 发表于 2021-8-31 14:57:19 | 只看该作者
本帖最后由 内容分析应用 于 2021-8-31 14:58 编辑

spark计算结果如果需要写入hadoop的HDFS, 则调用对应的api:

  1. #!coding:utf-8
  2. import sys
  3. from hdfs.client import Client

  4. #设置utf-8模式
  5. reload(sys)
  6. sys.setdefaultencoding( "utf-8" )

  7. #关于python操作hdfs的API可以查看官网:
  8. #https://hdfscli.readthedocs.io/en/latest/api.html

  9.    
  10. #追加数据到hdfs文件   
  11. def append_to_hdfs(client,hdfs_path,data):
  12.     client.write(hdfs_path, data,overwrite=False,append=True)
  13.    
  14. #覆盖数据写到hdfs文件
  15. def write_to_hdfs(client,hdfs_path,data):
  16.     client.write(hdfs_path, data,overwrite=True,append=False)
  17.   
  18. #移动或者修改文件  
  19. def move_or_rename(client,hdfs_src_path, hdfs_dst_path):
  20.     client.rename(hdfs_src_path, hdfs_dst_path)
复制代码



举报 使用道具
13#
Fuller 管理员 发表于 2021-8-31 15:42:01 | 只看该作者
内容分析应用 发表于 2021-8-31 14:54
spark计算结果做持久化,保存到本地文件的示例:

先做collect是什么目的?
举报 使用道具
14#
内容分析应用 金牌会员 发表于 2021-9-5 10:59:52 | 只看该作者
Fuller 发表于 2021-8-31 15:42
先做collect是什么目的?

上面示例保存到本地文件,用了collect方法。一次collect操作会将分布式各个节点上的数据汇聚到一个driver节点上,而这么一来,后续所执行的运算和操作就会脱离这个分布式环境而相当于单机环境下运行。

按相关文档的说明,在单机环境下做测试使用collect问题不大, 但分布式环境下尽量规避用collect,会有性能问题。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-5-6 18:13