【发布时间】:2021-06-01 16:56:13
【问题描述】:
我有一个带有字符串列的数据框,我想从中创建多个列。
这是我的输入数据,pagename 是我的字符串列
我想从中创建多个列。字符串的格式相同 - col1:value1 col2:value2 col3:value3 ... colN:valueN 。在输出中,我需要多列 - col1 to colN,每列的值为行。这是输出 -
我怎样才能在火花中做到这一点? Scala 或 Python 都适合我。下面的代码创建输入数据框 -
scala> val df = spark.sql(s"""select 1 as id, "a:100 b:500 c:200" as pagename union select 2 as id, "a:101 b:501 c:201" as pagename """)
df: org.apache.spark.sql.DataFrame = [id: int, pagename: string]
scala> df.show(false)
+---+-----------------+
|id |pagename |
+---+-----------------+
|2 |a:101 b:501 c:201|
|1 |a:100 b:500 c:200|
+---+-----------------+
scala> df.printSchema
root
|-- id: integer (nullable = false)
|-- pagename: string (nullable = false)
注意 - 该示例在此处仅显示 3 列,但总的来说,我希望处理 100 多列。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql