Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
如何在Spark Scala中将宽数据帧转换为垂直数据帧_Scala_Apache Spark - Fatal编程技术网

如何在Spark Scala中将宽数据帧转换为垂直数据帧

如何在Spark Scala中将宽数据帧转换为垂直数据帧,scala,apache-spark,Scala,Apache Spark,假设我有这个初始数据帧: val df_temp = Seq(("Mike",23,"NY","CA","FL"),("Bill",25,"CA","TX","MA"),("Kevin",22,"NY","NJ","CA")).toDF("Nam

假设我有这个初始数据帧:

  val df_temp = Seq(("Mike",23,"NY","CA","FL"),("Bill",25,"CA","TX","MA"),("Kevin",22,"NY","NJ","CA")).toDF("Name","Age","State1","State2","State3")
  val df_temp2 = Seq(("Mike",23,"NY"),("Mike",23,"CA"),("Mike",23,"FL"),("Bill",25,"CA"),("Bill",25,"TX"),("Bill",25,"MA"),("Kevin",22,"NY"),("Kevin",22,"NJ"),("Kevin",22,"CA")).toDF("Name","Age","State")

我想将其转换为以下数据帧:

  val df_temp = Seq(("Mike",23,"NY","CA","FL"),("Bill",25,"CA","TX","MA"),("Kevin",22,"NY","NJ","CA")).toDF("Name","Age","State1","State2","State3")
  val df_temp2 = Seq(("Mike",23,"NY"),("Mike",23,"CA"),("Mike",23,"FL"),("Bill",25,"CA"),("Bill",25,"TX"),("Bill",25,"MA"),("Kevin",22,"NY"),("Kevin",22,"NJ"),("Kevin",22,"CA")).toDF("Name","Age","State")

我该怎么做

非常感谢您,祝您度过愉快的一天

以下是代码:

df_temp.withColumn("States", array($"State1", $"State2", $"State3"))
  .select($"Name", $"Age", explode($"States").as("State"))

所用函数的引用:,。

如果我想将一个变量集传递给一个大的列数组,我该怎么做?我试过地图(col):*但没用