我正面临以下问题,但尚未获得答案:当将具有整数的pandas数据帧转换为具有数据假设为字符串的架构的pyspark数据帧时,值将变为“奇怪的”字符串,就像下面的例子一样。我已经保存了很多重要的数据,我想知道为什么会发生这种情况,以及是否有可能将这些符号“解码”回整数形式。预先感谢!
import pandas as pd
from pyspark.sql.types import StructType, StructField,StringType
df = pd.DataFrame(data = {"a": [111,222, 333]})
schema = StructType([
StructField("a", StringType(), True)
])
sparkdf = spark.createDataFrame(df, schema)
sparkdf.show()
输出:
--+
+---+
| a|
+---+
| o|
| Þ|
| ō|
+---+
答案 0 :(得分:0)
我无法在任何最新版本上重现该问题,但最可能的原因是您错误地定义了架构(与启用的Arrow支持结合使用)。
强制转换输入:
df["a"] = df.a.astype("str")
或定义正确的模式:
from pyspark.sql.types import LongType
schema = StructType([
StructField("a", LongType(), True)
])