爆炸管中的数据分离的数据



我有一个spark dataframe( input_dataframe ),此数据框中的数据看起来如下:

id              value
 1                a
 2                x|y|z
 3                t|u

我想拥有 output_dataframe ,使管道分离的字段爆炸,它应该看起来像以下内容:

id              value
 1                a
 2                x
 2                y
 2                z
 3                t
 3                u

请帮助我使用Pyspark实现所需的解决方案。任何帮助将不胜感激

我们可以首先拆分,然后使用以下功能爆炸值列,

>>> l=[(1,'a'),(2,'x|y|z'),(3,'t|u')]
>>> df = spark.createDataFrame(l,['id','val'])
>>> df.show()
+---+-----+
| id|  val|
+---+-----+
|  1|    a|
|  2|x|y|z|
|  3|  t|u|
+---+-----+
>>> from pyspark.sql import functions as F
>>> df.select('id',F.explode(F.split(df.val,'[|]')).alias('value')).show()
+---+-----+
| id|value|
+---+-----+
|  1|    a|
|  2|    x|
|  2|    y|
|  2|    z|
|  3|    t|
|  3|    u|
+---+-----+

相关内容

  • 没有找到相关文章