小编Hen*_*tro的帖子

如何使用Spark Dataset的映射保持相同的模式的列顺序?

我正在从Hive表中读取数据,然后尝试使用从其他列派生的额外列来丰富它.但我遇到Spark更改我的架构并按名称排序所有列的问题.

在调用withColumn()并使用我的富集类对其进行编码后,架构是正确的,但每当我调用map()时,架构都会更改,并且列的顺序是错误的.如何告诉Spark保持列的原始顺序?

session.table("myTable")
    .as(Encoders.bean(Base.class))
    .withColumn("enrichedColumn", lit(""))
    .as(Encoders.bean(Enriched.class))
    .map(enriched -> enriched.enrich(), Encoders.bean(Enriched.class))
    .printSchema();
Run Code Online (Sandbox Code Playgroud)

java dataset apache-spark

6
推荐指数
1
解决办法
578
查看次数

标签 统计

apache-spark ×1

dataset ×1

java ×1