【发布时间】:2018-08-29 21:37:28
【问题描述】:
架构:
|-- c0: string (nullable = true)
|-- c1: struct (nullable = true)
| |-- c2: array (nullable = true)
| | |-- element: struct (containsNull = true)
| | | |-- orangeID: string (nullable = true)
| | | |-- orangeId: string (nullable = true)
我正在尝试在 spark 中展平上述架构。
代码:
var df = data.select($"c0",$"c1.*").select($"c0",explode($"c2")).select($"c0",$"col.orangeID", $"col.orangeId")
扁平化代码运行良好。问题出在最后一部分,其中 2 列仅相差 1 个字母(orangeID 和 orangeId)。因此我收到此错误:
错误:
org.apache.spark.sql.AnalysisException: Ambiguous reference to fields StructField(orangeID,StringType,true), StructField(orangeId,StringType,true);
任何避免这种歧义的建议都会很棒。
【问题讨论】:
标签: scala apache-spark