我創建了一個帶有random.int方法的2列pandas df,以生成應用groupby操作的第二個兩列數據框。 df.col1是一系列列表,df.col2是一系列整數,列表中的元素是,類型爲'numpy.int64',與第二列元素相同,因爲random.int。將帶有Numpy值的pandas數據框轉換爲pysparkSQL.DataFrame
df.a df.b
3 7
5 2
1 8
...
groupby operations
df.col1 df.col2
[1,2,3...] 1
[2,5,6...] 2
[6,4,....] 3
...
當我嘗試用克里特spark.createDataFrame(DF)的pyspark.sql數據框中,我得到這個錯誤: 類型錯誤:不支持型: 'numpy.int64'。
回過頭來看看這個DF一代,我嘗試了不同的方法從numpy.int64到Python的int元素轉換,但沒有主題的工作:
np_list = np.random.randint(0,2500, size = (10000,2)).astype(IntegerType)
df = pd.DataFrame(np_list,columns = list('ab'), dtype = 'int')
我也試圖與拉姆達氧化物映射:INT (x)或x.item(),但類型仍然是'numpy.int64'。
根據pyspark.sql文檔,應該可以加載一個熊貓數據框,但它似乎與numpy值不兼容。 任何提示?
謝謝!
Thanks @DatTran,that works。然而,我想轉換的DF是第一個(女巫專欄co1和col2和列表)不是第二個;這就是爲什麼我試圖強制從其他數據框中的'numpy.int64'轉換爲'python int'。 – csbr
正如我所說這是不可能的!否則,你必須把它作爲一個「字符串」。 –
@csbr再次在這裏......你需要接受那些解答你的問題的答案 – eliasah