[英]How to apply pandas udf to large matrix dataframe
我真的是Spark和Pandas的新手。 我想對沒有任何列名的numpy.ndarray大矩陣應用pandas UDF。 我應該如何定義UDF函數的輸入?
這就是我所做的。 row是cassandra數據庫中的一行,“ b2”是數據庫中圖像的列名。
def normalize_i(I):
iI=I
minI=20#np.min(I)
maxI=50#np.max(I)
minO=0
maxO=255
iI = (256.0/65536)*iI
io=(iI-minI)*(((maxO-minO)/(maxI-minI))+minO)
return io
b2 = cPickle.loads(row.asDict()['b2'], encoding='bytes')
pdf = pd.DataFrame(b2,columns=["x"])
dfb2 = spark.createDataFrame(pdf)
dfb2.select(normalize_i(col("x")))
如預期的pd.DataFrame(b2,columns=["x"])
由於b2是數組數組,因此pd.DataFrame(b2,columns=["x"])
返回錯誤:ValueError:傳遞的值的形狀為(324,324),索引表示(324,1)
如何定義數據框的列名以及函數的輸入?
任何評論將不勝感激。 謝謝
您能詳細說明pdf的外觀嗎?
如果b2是324x324,我想您應該給324列名稱:
columns = ['x'+str(i) for i in range(b2.shape[1])]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.