![](/img/trans.png)
[英]How to merge multiple sheets and rename column names with the names of the sheet names?
[英]How to rename multiple column names as single column?
我有一個包含列 [col1, col2, col3.... col9] 的表。 我想在 python 中將所有列數據合並為一列作為 col?
from pyspark.sql.functions import concat
values = [('A','B','C','D'),('E','F','G','H'),('I','J','K','L')]
df = sqlContext.createDataFrame(values,['col1','col2','col3','col4'])
df.show()
+----+----+----+----+
|col1|col2|col3|col4|
+----+----+----+----+
| A| B| C| D|
| E| F| G| H|
| I| J| K| L|
+----+----+----+----+
req_column = ['col1','col2','col3','col4']
df = df.withColumn('concatenated_cols',concat(*req_column))
df.show()
+----+----+----+----+-----------------+
|col1|col2|col3|col4|concatenated_cols|
+----+----+----+----+-----------------+
| A| B| C| D| ABCD|
| E| F| G| H| EFGH|
| I| J| K| L| IJKL|
+----+----+----+----+-----------------+
使用火花 SQL
new_df=sqlContext.sql("SELECT CONCAT(col1,col2,col3,col3) FROM df")
使用非 Spark SQL 方式,您可以使用 Concat function
new_df = df.withColumn('joined_column', concat(col('col1'),col('col2'),col('col3'),col('col4'))
由於某些原因,在 Spark(pySpark) 中,沒有對現有數據進行編輯。 您可以做的是創建一個新列。 請檢查以下鏈接。
如何向 Spark DataFrame(使用 PySpark)添加新列?
使用UDF function ,您可以將所有這些值聚合/組合成一行並將您作為單個值返回。
幾點注意事項,聚合時請注意以下數據問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.