将字段附加到pyspark中的行

时间:2015-07-29 05:49:47

标签: python apache-spark pyspark

我有size并在其上运行DataFrame。 在map函数中,我试图将一个新字段附加到给定的行。

我该怎么做?

flatMap

2 个答案:

答案 0 :(得分:0)

想出来,但我不确定这是不是正确的方法。

def mapper(row):
    from pyspark.sql import Row
    value = 0 #some computation here
    data = row.asDict()
    data["newvalue"] = value
    return Row(**data)

答案 1 :(得分:0)

在你的带领下,我创造了更灵活的东西,我希望它有所帮助:

from pyspark.sql import Row

def addRowColumn(row, **kwargs):
    rowData = row.asDict()
    for column in kwargs:
        rowData[column] = kwargs[column]
    return Row(**rowData)

要在一行中使用它,只需像这样调用:

modifiedRow = addRowColumn(originalRow, test="Hello Column!")

要在整个数据集上运行,只需创建一个udf来更改每一行。