3
我知道,使用spark数据框时,您需要直接将任何数据源作为spark数据框导入。在我的情况下,我需要使用熊猫函数来吹出表格并创建虚拟变量。因此,在读取数据后,我在.map()函数中使用了该函数。如何将Pandas的DataFrame转换为Spark中的DataFrame或LabeledPoint?
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
我。降低()函数是这样的:
parsedData = data.map(parsePoint).reduce(lambda a, b: a.append(b)).fillna(0)
它给我我想要的东西,但现在我需要得到这个重组大熊猫据帧到labeledPoints,这样我可以用它MLlib算法。我如何做.toPandas()函数的反义词,并将其从熊猫转换为spark数据框或带标记的Point?