繁体   English   中英

如何在Spark中将pandas的DataFrame转换为DataFrame或LabeledPoint?

[英]How to convert pandas' DataFrame to DataFrame or LabeledPoint in Spark?

据我所知,在处理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数据帧放到labeledPoints中,以便我可以将它与MLlib算法一起使用。 如何执行与.toPandas()函数相反的操作并将pandas转换为spark dataframe或labeledPoint?

sqlContext.createDataFrame(PANDASDATA)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM