scala - 如何在火花中将数据集 [行] 保存为文本文件?
问题描述
我想在特定位置将 Dataset[Row] 保存为具有特定名称的文本文件。有谁能够帮我?
我试过这个,但这会产生一个文件夹(LOCAL_FOLDER_TEMP/filename),里面有一个镶木地板文件:Dataset.write.save(LOCAL_FOLDER_TEMP+filename)
谢谢
解决方案
您不能使用 spark api 将数据集保存到特定的文件名,有多种解决方法可以做到这一点。
- 正如 Vladislav 提供的那样,收集您的数据集,然后使用 scala/java/python api 将其写入您的文件系统。
- 应用 repartition/coalesce(1),写入数据集,然后更改文件名。
两者都不是很推荐,因为在大型数据集中它可能导致 OOM 或者只是失去了 spark 的并行能力。
您获得 parquet 文件的第二个问题,它是 spark 的默认格式,您应该使用:
df.write.format("text").save("/path/to/save")
推荐阅读
- html - 响应能力 - Chrome 中的 iPad 与 Mozilla Firefox 中的 iPad
- r - zoo() 如何填充 n 行,而原始 Dataframe 有 n-1 行?
- python - Django rest api DRF - ViewSet 从 get 中隐藏一个字段,但包含 put
- python - 排序时如何处理NULL值?
- php - PHP Laravel 发送邮件返回验证错误和空字段
- serial-port - 串口通讯打印问题
- sun-codemodel - 如何将枚举值作为参数传递给代码模型中的调用?
- amazon-iam - AWS IAM CDK:为用户标记和创建访问密钥
- php - 如何在不刷新页面的情况下在同一个 { div } 上显示表单成功消息?
- javascript - Electron 构建时自动启动 NodeJS