Я думаю, что лучше работать с RDD, если вы сохраните вывод в виде текстового файла.Вот мое решение для pyspark
>>> data = sc.parallelize([
... ('aaa','bbb','ccc','ddd'),
... ('aaa','bbb','ccc','ddd'),
... ('aaa','bbb','ccc','ddd')])
>>> columns = ['a','b','c','d']
>>>
>>> df = spark.createDataFrame(data, columns)
>>>
>>> df.show()
+---+---+---+---+
| a| b| c| d|
+---+---+---+---+
|aaa|bbb|ccc|ddd|
|aaa|bbb|ccc|ddd|
|aaa|bbb|ccc|ddd|
+---+---+---+---+
>>>
>>> df.registerTempTable("table1")
>>>
>>> table1 = spark.sql("select concat(a,' ', b,' ',c, ' ', d) col from table1")
>>>
>>> table1.show()
+--------------------+
| col|
+--------------------+
|aaa bbb ccc ...|
|aaa bbb ccc ...|
|aaa bbb ccc ...|
+--------------------+
>>>
>>> rdd = table1.rdd.map(lambda x: "".join([str(i) for i in x]))
>>>
>>> rdd.collect()
['aaa bbb ccc ddd', 'aaa bbb ccc ddd', 'aaa bbb ccc ddd']
>>>
>>> rdd.saveAsTextFile("/yourpath")