2017-06-02 5 views
0

列の値が0であるができないデータフレームから列をフェッチしようとしています。誰も同じことを試みたのですか?値が0に等しいpysparkデータフレームから列をフェッチする

+0

特定の列のすべての値をゼロにしますか?より明示的にすることができますか、またはあなたがしようとしていることの例を提供できますか? – StackPointer

+0

私は単一の行を持つdfを持っています。いくつかの列は0であり、いくつかは0より大きい値を持ちます。値が0より大きい列のみを抽出する必要があります –

答えて

0
## Data Frame with One Row 
row = [[1,0,0,1,2,3,4,0,0,0]] 
df = sc.parallelize(row).toDF(['Col1','Col2','Col3','Col4','Col5','Col6','Col7','Col8','Col9','Col10']) 
df.show() 

#Say you have only one row hene we wrote that zero 
list_of_dict = map(lambda row: row.asDict(), df.collect())[0] 

zeroCol = [] 
for key in list_of_dict.keys(): 
    if list_of_dict[key] > 0: 
     zeroCol.append(key) 

print zeroCol 

+----+----+----+----+----+----+----+----+----+-----+ 
|Col1|Col2|Col3|Col4|Col5|Col6|Col7|Col8|Col9|Col10| 
+----+----+----+----+----+----+----+----+----+-----+ 
| 1| 0| 0| 1| 2| 3| 4| 0| 0| 0| 
+----+----+----+----+----+----+----+----+----+-----+ 

['Col6', 'Col7', 'Col4', 'Col5', 'Col1'] 
関連する問題