我正在为Spark写一个Scala脚本,我有一个“specialArray
”如下:
specialArray = ...
specialArray.show(6)
__________________________ console __________________________________
specialArray: org.apache.spark.sql.DataFrame = [_VALUE: array<string>]
+--------------+
| _VALUE|
+--------------+
| [fullForm]|
| [fullForm]|
| [fullForm]|
| [fullForm]|
| [fullForm]|
| [fullForm]|
| [fullForm]|
+--------------+
only showing top 6 rows
但是想看看那些“fullForm”子阵列的内容,你会怎么做呢?
非常感谢你!
我已经尝试以这种方式获得第一个值:
val resultTest = specialArray.map(s => s.toString).toDF().collect()(0)
__________________________ console __________________________________
resultTest: org.apache.spark.sql.Row = [[WrappedArray(fullForm)]]
所以我不知道该怎么处理,而且我在thdoc :: https://www.scala-lang.org/api/current/scala/collection/mutable/WrappedArray.html中找不到任何“有效”的东西。
如果您有任何想法或有任何问题要问我,请随时留言,谢谢:)。
答案 0 :(得分:1)
此处specialArray
是一个数据框,因此要查看您使用的数据框架specialArray.printSchema
,它会显示数据框内的数据类型。
如果您只想查看数据框内的数据,可以使用
specialArray.show(6, false)
参数false
在显示长值时不会截断。
接下来您可以使用select
或withColumn
将WrappedArray
更改为逗号分隔(或任何分隔符)String
import org.apache.spark.sql.functions._
df.select(concat_ws(",", $"_VALUE")).show(false)
df.withColumn("_VALUE", concat_ws(",", $"_VALUE")).show(false)
希望这有帮助!