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

时间:2017-04-13 07:15:49

标签: java apache-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();

0 个答案:

没有答案