所有,
是否有一种优雅且可接受的方式来使用嵌套的列展平Spark SQL表(Parquet) StructType
例如
如果我的架构是:
foo
|_bar
|_baz
x
y
z
Run Code Online (Sandbox Code Playgroud)
如何在不依靠手动运行的情况下将其选择为展平的表格形式
df.select("foo.bar","foo.baz","x","y","z")
Run Code Online (Sandbox Code Playgroud)
换句话说,如何在a StructType
和a下以编程方式获得上述代码的结果DataFrame
有没有办法压缩任意嵌套的Spark Dataframe?我所看到的大多数工作都是针对特定的模式编写的,我希望能够通过不同的嵌套类型(例如StructType,ArrayType,MapType等)来泛化一个Dataframe.
假设我有一个类似的架构:
StructType(List(StructField(field1,...), StructField(field2,...), ArrayType(StructType(List(StructField(nested_field1,...), StructField(nested_field2,...)),nested_array,...)))
Run Code Online (Sandbox Code Playgroud)
希望将其调整为具有如下结构的平台:
field1
field2
nested_array.nested_field1
nested_array.nested_field2
Run Code Online (Sandbox Code Playgroud)
仅供参考,寻找Pyspark的建议,但其他风味的Spark也值得赞赏.