scala - Spark写入多个文件
问题描述
我有两个具有不同过滤条件的数据帧,我需要将两个数据帧都写入 hdfs 同一个文件夹。我应该如何在一个拥抱文件夹中写入两个数据框。
解决方案
您可以使用转换创建一个数据框union
:
scala> val firstDF = List((1,2,3),(4,5,6)).toDF("a","b","c")
firstDF: org.apache.spark.sql.DataFrame = [a: int, b: int ... 1 more field]
scala> firstDF.show
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 2| 3|
| 4| 5| 6|
+---+---+---+
scala> val secondDF = List((7,8,9),(10,11,12)).toDF("a","b","c")
secondDF: org.apache.spark.sql.DataFrame = [a: int, b: int ... 1 more field]
scala> secondDF.show
+---+---+---+
| a| b| c|
+---+---+---+
| 7| 8| 9|
| 10| 11| 12|
+---+---+---+
scala> val thirdDF = firstDF.union(secondDF)
thirdDF: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: int, b: int ... 1 more field]
scala> thirdDF.show
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 2| 3|
| 4| 5| 6|
| 7| 8| 9|
| 10| 11| 12|
+---+---+---+
然后您可以使用您喜欢的序列化格式将其写入 HDFS 文件夹。
推荐阅读
- java - 如何暂停对布尔变量执行函数?
- angular - 如何在 TypeScript 中将对象从硬编码更改为动态属性
- acumatica - 升级到 2019 R1 时如何解决此错误
- python - 使用 Python Pandas 数据框提取一个大型 Postgres 表并将其写入 csv 文件
- html - CSS 样式化看板 - 调整 DIV 的大小和重新定位以适应内容
- python - h2o XGBoost 未找到后端
- c# - 使用 vlc 播放器在 C# 中寻找视频的问题
- udeploy - uDeploy 读取json文件的步骤
- javascript - 从 testcafe 中打开的第 N 个模式中选择 OK 按钮
- excel - 如何使用项目符号将表格复制到 Excel 中并保持项目符号的格式与 ms-word 中的格式相同