gpt4 book ai didi

scala - Spark-Scala : not a member of org. apache.spark.sql.Row

转载 作者:行者123 更新时间:2023-12-04 09:46:06 24 4
gpt4 key购买 nike

我正在尝试将数据帧转换为RDD,然后执行以下一些操作以返回元组:

df.rdd.map { t=>
(t._2 + "_" + t._3 , t)
}.take(5)

然后我得到下面的错误。有人有主意吗?谢谢!
<console>:37: error: value _2 is not a member of org.apache.spark.sql.Row
(t._2 + "_" + t._3 , t)
^

最佳答案

当您将DataFrame转换为RDD时,您会得到一个RDD[Row],因此,当您使用map时,您的函数会收到一个Row作为参数。因此,必须使用Row方法访问其成员(请注意,索引从0开始):

df.rdd.map { 
row: Row => (row.getString(1) + "_" + row.getString(2), row)
}.take(5)

您可以查看更多示例,并在 Spark scaladoc中检查可用于 Row对象的所有方法。

编辑:我不知道执行此操作的原因,但是对于连接DataFrame的String列,您可以考虑以下选项:
import org.apache.spark.sql.functions._
val newDF = df.withColumn("concat", concat(df("col2"), lit("_"), df("col3")))

关于scala - Spark-Scala : not a member of org. apache.spark.sql.Row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com