Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String scala有关如何拆分一列的操作_String_Scala_Apache Spark_Dataframe_Split - Fatal编程技术网

String scala有关如何拆分一列的操作

String scala有关如何拆分一列的操作,string,scala,apache-spark,dataframe,split,String,Scala,Apache Spark,Dataframe,Split,例如:有如下数据帧: val df2 = sc.parallelize(List((1, "A|B"), (1, "C|D"), (2, "E|A"), (2, "S|D"))) .toDF("key1","key2") 现在我想将列“key2”拆分为两列。结果的每一行显示如下: 1 "A" "B" 我应该编写什么代码?谢谢 您可以按|拆分key2列,然后将每个元素映射到新列。您可以尝试以下代码 df2.withColumn("key",split($"key2","\\|")).selec

例如:有如下数据帧:

val df2 = sc.parallelize(List((1, "A|B"), (1, "C|D"), (2, "E|A"), (2, "S|D")))
.toDF("key1","key2")
现在我想将列“key2”拆分为两列。结果的每一行显示如下:

1 "A" "B"

我应该编写什么代码?谢谢

您可以按
|
拆分
key2
列,然后将每个元素映射到新列。您可以尝试以下代码

df2.withColumn("key",split($"key2","\\|")).select(
      $"key1",
      $"key".getItem(0).as("key2"),
      $"key".getItem(1).as("key3")
    ).show()

// output
// +----+----+----+
// |key1|key2|key3|
// +----+----+----+
// |   1|   A|   B|
// |   1|   C|   D|
// |   2|   E|   A|
// |   2|   S|   D|
// +----+----+----+