擅长:python、mysql、java
<p>使用<a href="https://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=pivot#pyspark.sql.functions.create_map" rel="nofollow noreferrer">^{<cd1>}</a>函数创建映射列,然后将其分解。你知道吗</p>
<p><code>create_map</code>需要分组的列表达式列表
作为键值对。可以使用创建这样的列表,以便理解数据帧列:</p>
<pre><code>from itertools import chain
from pyspark.sql.functions import col, lit, create_map, explode
data = [("value1", "value2"), ("value3", "value4")]
df = spark.createDataFrame(data, ["key1", "key2"])
key_values = create_map(*(chain(*[(lit(name), col(name)) for name in df.columns])))
df.select(explode(key_values)).show()
+ + +
| key| value|
+ + +
|key1|value1|
|key2|value2|
|key1|value3|
|key2|value4|
+ + +
</code></pre>