gpt4 book ai didi

apache-spark - Spark 行编码器 : empty metadata

转载 作者:行者123 更新时间:2023-12-05 07:08:57 26 4
gpt4 key购买 nike

我在 Java 中使用 spark,我正在从 RDD OF 行创建行数据集。

我使用

创建模式
Metadata meta = new MetadataBuilder().putString("type", "categorical").build();
StructField s = new StructField(name, IntegerType, true, meta);
StructType t = new StructType(new StructField[]{s});
Encoder<Row> encoder = RowEncoder.apply(t);

我像这样在数据集中使用它

ds.flatMap((FlatMapFunction<Row, Row>) this::customFlatMapRow, encoder);

由于某些原因,在我编写表格并检查架构的字段及其元数据后,它们是空的(尽管我创建并像上面那样设置它们)。不知何故,我正在失去它们

最佳答案

如果您检查 ExpressionEncoder数据集的元数据可用。

代码

Metadata meta = new MetadataBuilder().putString("type", "categorical").build();
StructField s = new StructField("col", IntegerType, true, meta);
StructType t = new StructType(new StructField[]{s});
Encoder<Row> encoder = RowEncoder.apply(t);

Dataset<Row> df = spark.createDataset(Arrays.asList(1, 2, 3), Encoders.INT()).toDF("col");
Dataset<Row> df2 = df.flatMap((FlatMapFunction<Row, Row>) r -> Collections.singleton(r).iterator(), encoder);
System.out.println(df2.exprEnc().schema().fields()[0].metadata());

打印

{"type":"categorical"}

关于apache-spark - Spark 行编码器 : empty metadata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61783689/

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