Hen*_*tro 6 java dataset apache-spark
我正在从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)
小智 0
很难从一小段代码中看出,但我在这里预见到你的模型存在问题。
您必须确保 Enriched.class 和 Base.class 具有相同的有序字段。
例如,这不会提供相同的顺序:
Base:
x;
y;
Enriched:
y;
x;
Run Code Online (Sandbox Code Playgroud)
不会被订购相同的...
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |