3

我知道在使用 spark 数据框时,您需要将任何数据源直接导入为 spark 数据框。就我而言,我需要使用 pandas 函数来爆表并创建虚拟变量。所以我在读入数据后在我的 .map() 函数中使用了这个函数。

def parsePoint(line):
    listmp = list(line.split('\t'))
    dataframe = pd.DataFrame(pd.get_dummies(listmp[1:]).sum()).transpose()
    dataframe.insert(0, 'status', dataframe['accepted'])
    if 'NULL' in dataframe.columns:
        dataframe = dataframe.drop('NULL', axis=1)  
    if '' in dataframe.columns:
        dataframe = dataframe.drop('', axis=1)  
    if 'rejected' in dataframe.columns:
        dataframe = dataframe.drop('rejected', axis=1)  
    if 'accepted' in dataframe.columns:
        dataframe = dataframe.drop('accepted', axis=1)  
    return dataframe 

我的 .reduce() 函数是这样的:

parsedData = data.map(parsePoint).reduce(lambda a, b: a.append(b)).fillna(0)

它给了我我想要的东西,但是现在我需要将这个重组的 pandas 数据框放入 labelPoints 中,以便我可以将它与 MLlib 算法一起使用。如何与 .toPandas() 函数相反并从 pandas 转换为 spark 数据帧或标记点?

4

1 回答 1

1
sqlContext.createDataFrame(PANDASDATA)
于 2015-09-13T23:59:31.890 回答