我有以下格式的数据帧:
id types
--- -------
1 {"BMW":"10000","Skoda":"12345"}
2 {"Honda":"90000","BMW":"11000","Benz":"56000"}
我需要创建一个新的数据帧,如下所示:
id types value
--- ------ -------
1 BMW 10000
1 Skoda 12345
2 Honda 90000
2 BMW 11000
2 Benz 56000
将来自_json的与MapType一起使用,并分解数组。
示例代码
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
df.withColumn("jsn", from_json(col("types"),MapType(StringType(),StringType()))).
select("id",explode("jsn")).
show()
//+---+-----+-----+
//| id| key|value|
//+---+-----+-----+
//| 1| BMW|10000|
//| 1|Skoda|12345|
//| 2|Honda|90000|
//| 2| BMW|11000|
//| 2| Benz|56000|
//+---+-----+-----+
问题内容: 我的问题是我有一个这样的表: c1 | c2 | c3 | c4是一个由|分隔的值。 我的最终结果应如下所示: 我该怎么做呢? 谢谢 问题答案: 这就是您可以执行的操作,使用管道将字符串拆分并使用spark函数爆炸数据 输出: 希望这可以帮助!
我有一个包含(我认为是)对的数据帧。 它看起来像这样: < code>Col2曾经包含一个< code>Map[String,String],我在上面做了一个< code>toList(),然后做了< code>explode()以获得原始Map中每个映射的一行。 我想将< code>Col2分成2列,并获得以下数据帧: 有谁知道如何做到这一点? 或者,有人知道如何将一个映射分解成多行(每个映射一
将一个整数,分拆为若干整数的和。例如实现: 4=3+1 4=2+2 4=2+1+1 4=1+1+1+1 解决(Python) #! /usr/bin/env python #encoding:utf-8 """ """ def int_divided(m,r,out_list): if(r==0): return True tm=r while tm>0:
感兴趣的是在同一pyspark数据帧中将列表的这一列拆分为多列的scala-spark实现 给定该数据帧: 我想要一个新的数据帧,它包含分解值并映射到我提供的列名称: 尝试: 但它的格式错误,我不知道如何映射到我的 colNames 列表: 在上面的链接中,python的解决方案是使用列表理解: 但它没有显示如何使用提供的列名列表,因为列名只是列的索引。
理想情况下,我希望这些新列也被命名。
我有一个Pandas DataFrame列,其中包含一个列表中的多个列表。类似于这样: 我想将列表拆分为多列,因此输出应该是这样的: 请帮我做这件事。预先感谢