我可以在 SparkSQL 中执行以下语句:
result_df = spark.sql("""select
one_field,
field_with_struct
from purchases""")
Run Code Online (Sandbox Code Playgroud)
生成的数据帧将具有完整结构的字段field_with_struct。
| 一个字段 | 带结构的字段 |
|---|---|
| 123 | {名称1,val1,val2,f2,f4} |
| 第555章 | {名称2,val3,val4,f6,f7} |
我只想从 中选择几个字段field_with_struct,但将它们保留在结果数据框中的结构中。如果有可能(这不是真正的代码):
result_df = spark.sql("""select
one_field,
struct(
field_with_struct.name,
field_with_struct.value2
) as my_subset
from purchases""")
Run Code Online (Sandbox Code Playgroud)
要得到这个:
| 一个字段 | 我的子集 |
|---|---|
| 123 | {名称1,值2} |
| 第555章 | {名称2,值4} |
有没有办法用 SQL 来做到这一点?(不适用于流畅的 API)