如何在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):*但没用