gpt4 book ai didi

python - PySpark toPandas 函数正在更改列类型

转载 作者:行者123 更新时间:2023-12-04 13:37:34 27 4
gpt4 key购买 nike

我有一个具有以下架构的 pyspark 数据框:

root
|-- src_ip: integer (nullable = true)
|-- dst_ip: integer (nullable = true)

通过 toPandas() 将此数据帧转换为 Pandas 时,列类型从spark中的整数变为pandas中的浮点数:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9847 entries, 0 to 9846
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 src_ip 9607 non-null float64
1 dst_ip 9789 non-null float64
dtypes: float64(2)
memory usage: 154.0 KB

有没有办法用 toPandas() 保持整数值?或者我只能在生成的 Pandas 数据框中转换列类型?

最佳答案

SPARK-21766 ( https://issues.apache.org/jira/browse/SPARK-21766 ) 解释了您观察到的行为。

作为一种解决方法,您可以在 toPandas() 之前调用 fillna(0):

df1 = sc.createDataFrame([(0, None), (None, 8)], ["src_ip", "dest_ip"])
print(df1.dtypes)

# Reproduce the issue
pdf1 = df1.toPandas()
print(pdf1.dtypes)

# A workaround
pdf2 = df1.fillna(0).toPandas()
print(pdf2.dtypes)

关于python - PySpark toPandas 函数正在更改列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60835421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com