将火花数据帧写入固定宽度文件java spark
Posted
技术标签:
【中文标题】将火花数据帧写入固定宽度文件java spark【英文标题】:Write spark dataframe to fixed width file java spark 【发布时间】:2020-11-19 15:36:36 【问题描述】:我已经使用 java spark 数据帧将 CSV 读入数据帧,现在我必须对每个列应用一些宽度并将该数据写入一个固定宽度的文件。例如..第 1 列有 2 位宽度,第 2 列有 7 位...就像我有 85 列一样。有人可以解释一下如何使用 java spark 将数据框中的数据写入固定宽度的文件。我只需要 java spark 中的解决方案
【问题讨论】:
将数据框的每一行映射到一个字符串,并留出你需要的间距 【参考方案1】:如果没有更多描述(和代码示例),我会提出类似的建议:
public Dataset<String> toFixedWidthString(Dataset<MyClass> inputDataset, int width)
return inputDataset.map(myClass ->
String.format("%" + width + "s", myClass.toString()), Encoders.STRING());
【讨论】:
每一列都有单独的宽度......我认为你的代码是将整个数据框转换为具有指定宽度的字符串数据集......但我的每一列都有不同的宽度......我需要申请每列的宽度不同...在这种情况下,此代码将不起作用 好吧,我需要更多你的代码(至少是数据模型)才能给出更详细的答案。你可以做的是简单地改进我写的 String.format 来写你想要的东西,比如String.format("%s, %s, %s", myClass.fieldA, myClass.fieldB, myClass.filedC)
以上是关于将火花数据帧写入固定宽度文件java spark的主要内容,如果未能解决你的问题,请参考以下文章
在 Apache Spark 中,用 Java 将数据帧写入 Hive 表