gpt4 book ai didi

java - Spark查找每列的最大比例

转载 作者:行者123 更新时间:2023-12-01 16:53:35 24 4
gpt4 key购买 nike

这就是我到目前为止所做的

private List<Integer> getScales(Dataset<Row> columnLengthDataFrame, 
Dataset<Row> df) {

List<Integer> list = new ArrayList<>();

for (int i = 0; i < columnLengthDataFrame.columns().length; i++) {
Object data = df.first().get(i);
String number = String.valueOf(data);
if (number.contains(".")) {
String scale = number.substring(number.indexOf(".")).substring(1);
list.add(scale.length());
}
}

return list;
}

这仅给出第一行的比例,我想要同一列的最大比例

enter image description here

对于 col1,我得到的是比例 1,但我想要比例 6。

最佳答案

您无需执行任何操作即可找到它。可以从 DataFrame 的架构中检索它。

Scala

df.schema.fields.collect { case StructField(_, typ: DecimalType, _, _) => typ.scale }

Java

Arrays.stream(df.schema().fields())
.filter(f -> f.dataType().getClass().equals(DecimalType.class))
.map(column -> ((DecimalType) column.dataType()).scale()).collect(Collectors.toList())

关于java - Spark查找每列的最大比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com