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?