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,会有性能问题。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 利用AI阅读和分析文本:扣子COZE记录用户反
  • 在网页片段内直观标注——以B站评论采集为
  • 利用AI阅读和分析文本:使用COZE建设游记文
  • 使用AI工具Kimi生成python代码为文本分析结
  • 苹果mac电脑安装集搜客网络爬虫软件失败的

热门用户

GMT+8, 2024-11-18 18:47