我有一个火花数据帧看起来像:
id DataArray
a array(3,2,1)
b array(4,2,1)
c array(8,6,1)
d array(8,2,4)
我想将此数据帧转换为:
id col1 col2 col3
a 3 2 1
b 4 2 1
c 8 6 1
d 8 2 4
我应该使用什么功能?
您可以使用foldLeft
将列添加到
数据数组
列出要添加的列名
val columns = List("col1", "col2", "col3")
columns.zipWithIndex.foldLeft(df) {
(memodDF, column) => {
memodDF.withColumn(column._1, col("dataArray")(column._2))
}
}
.drop("DataArray")
希望这有所帮助!
使用应用
:
import org.apache.spark.sql.functions.col
df.select(
col("id") +: (0 until 3).map(i => col("DataArray")(i).alias(s"col$i")): _*
)
问题内容: 我正在尝试解析如下的JSON 到[[“ Jack”,“ Jones”,“ Rock”,“ Taylor”,“ Rob”],[“ Rose”,“ John”],[“ Ted”]]的数组 这是数组的数组。 我尝试了下面的代码 当我打印“人”时,我得到o / p为 我很困惑当“人物”重复3次时如何解析 尝试在UITableView中显示内容,其中第一个单元格具有“ Jack” ..“ Rob
问题内容: 运行此查询时: 我得到一个这样的表: 我现在想做的是获取相同的信息,但是将数组分成几行,所以我得到的结果是这样的: 如您所见,我不想在“ selected_placements”中获取具有空值的行。 我正在使用PostgreSQL 8.0.2。 非常感谢! 问题答案: 我建议您升级Postgres版本。所有受支持的版本均支持: 在早期版本中,您可以尝试一次将它们选出来。尽管已在9.5中
问题内容: 我的要求很简单,但是我需要做很多事情,因此我正在寻找可靠的解决方案。 是否有一个很好的轻量级库,用于将URL分解为Java中的组成部分?我指的是主机名,查询字符串等。 问题答案: 看一看java.net.URL。它具有完全符合您要执行的操作的方法。 主机名: 查询字符串: Fragment / ref / anchor: 路径:
问题内容: 我的问题是我有一个这样的表: c1 | c2 | c3 | c4是一个由|分隔的值。 我的最终结果应如下所示: 我该怎么做呢? 谢谢 问题答案: 这就是您可以执行的操作,使用管道将字符串拆分并使用spark函数爆炸数据 输出: 希望这可以帮助!
在Bash脚本中,我希望将一行拆分为几个部分,并将它们存储在数组中。 例如,给定行: 我希望得到的数组如下所示: 一个简单的实现是优选的;速度不重要。我该怎么做呢?
我有一个包含结构数组的嵌套源json文件。结构的数量因行而异,我想使用Spark(scala)从结构的键/值动态创建新的数据框架列,其中键是列名,值是列值。 这里有一个由3个结构组成的数组,但这3个结构需要动态地拆分为3个单独的列(3个的数量可能会有很大的变化),我不知道如何做到这一点。 请注意,数组中的每个数组元素都产生了3个新列。 我认为理想的解决方案与本SO帖子中讨论的类似,但有两个主要区别