【发布时间】:2018-01-06 18:51:04
【问题描述】:
我使用 random.int 方法创建了一个 2 列 pandas df 来生成应用 groupby 操作的第二个两列数据框。 df.col1 是一系列列表,df.col2 是一系列整数,列表内的元素是type 'numpy.int64',第二列的元素也是一样,是随机的结果.int.
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')
我也尝试使用 lambda x: int(x) 或 x.item() 进行映射,但类型仍然是 'numpy.int64'。
根据 pyspark.sql 文档,应该可以加载 pandas 数据帧,但是当它带有 numpy 值时似乎不兼容。 有什么提示吗?
谢谢!
【问题讨论】:
标签: python pandas numpy pyspark apache-spark-sql