首页 > 解决方案 > Spark DataFrame 每条记录添加“[”字符

问题描述

我正在这样做:

val xmlDataRDD : RDD[String] = anyDataFrame.get.select("columnSelected")

RDD (xmlDataRDD) 中的任何数据都以这种形式存储:

[valueofColumnSelected]
[valueofColumnSelected]
[valueofColumnSelected]
[valueofColumnSelected]

你知道我怎样才能避免记录中的“[”和“]”吗?我不想执行替换行来删除它们。

标签: scalaapache-spark-sql

解决方案


这种行为是由于将数据帧转换为 RDD 可能会导致所有行元素中的行都带有方括号 []。

您可以使用以下方法使用 RDD 内置函数从每一行检索实际值。

someDF.select("number").show()
/*
+---------+
|number   |
+---------+
|     8   |
|    64   |
|   -27   |
+---------+ */

someDF.select("number").rdd.collect()

/* Array[org.apache.spark.sql.Row] = Array([8], [64], [-27]) */ 

someDF.select("number").rdd.collect().foreach {row => println(row(0).toString.toInt)}
/* 
8
64
-27*/

推荐阅读