我想将数据框的字符串列转换为列表。我从Dataframe
API中可以找到的是RDD,所以我尝试先将其转换回RDD,然后将toArray
函数应用于RDD。在这种情况下,长度和 SQL 工作得很好。然而,我从 RDD 得到的结果在每个元素周围都有方括号,就像这样的 [A00001]
。我想知道是否有适当的方法将列转换为列表或删除方括号。
如有任何建议,我们将不胜感激。谢谢!
最佳答案
这应该返回包含单个列表的集合:
dataFrame.select("YOUR_COLUMN_NAME").rdd.map(r => r(0)).collect()
如果没有映射,您只会获得一个 Row 对象,其中包含数据库中的每一列。
请记住,这可能会为您提供任何类型的列表。 Ï如果要指定结果类型,可以在 r => r(0).asInstanceOf[YOUR_TYPE]
映射中使用 .asInstanceOf[YOUR_TYPE]
附注由于自动转换,您可以跳过 .rdd
部分。
关于scala - 在 Apache Spark 中将 Dataframe 的列值提取为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000646/