使用scala将数据框转换为String并将输出保存到csv

Art*_*Art 1 scala dataframe apache-spark

我想在一个字符串中追加行

+--------------------+
|   defectDescription|
+--------------------+
|ACEView NA : Daework|
|ACEView NA : Documen|
|ACEView NA : ACev   |
|ACEView NA : Dragdro|
+--------------------+
Run Code Online (Sandbox Code Playgroud)

预期输出: ACEView NA:Daework ACEView NA:Documen ACEView NA:ACev ACEView NA:Dragdro

Ass*_*son 6

如果您确实想要将所有数据都放入单个字符串中,则可以使用collect执行此操作:

val rows = df.select("defectDescription").collect().map(_.getString(0)).mkString(" ")
Run Code Online (Sandbox Code Playgroud)

你首先选择相关的列(所以你只有它)并收集它,它会给你一个行数组.地图将每一行转换为字符串(只有一列 - 0).然后mkString将使用空格作为分隔符来创建它们的整体字符串.

请注意,这会将整个数据帧带到驱动程序,这可能会导致内存异常.如果只需要一些数据,可以使用take(n)而不是collect来将行数限制为n.