繁体   English   中英

Pandas read_parquet 部分解析二进制列

[英]Pandas read_parquet partially parses binary column

我正在尝试读取包含具有多个十六进制值的二进制列的镶木地板文件,这在使用 Pandas 读取它时会导致问题。 Pandas 会自动将一些十六进制值转换为字符,但有一些保持不变,因此数据不再可用。 使用PySpark读取它时,它将所有十六进制值转换为十进制基数,但由于 output 是一致的,因此它是可用的。

任何想法为什么 pandas 以不同方式解析此列以及我如何获得相同的 output,或者至少是一致的(未应用部分解析)作为 Spark 返回?

代码片段和返回的输出:

Pandas:

df = pd.read_parquet('data.parquet'))

pd.read_parquet output:

pd.read_parquet 输出

火花:

spark_df = spark.read.parquet("data.parquet")
df = spark_df.toPandas()

Spark.read.parquet output:

spark.read.parquet 输出

Pandas 正在返回一个字节字符串,一些字符会这样显示,但没有任何问题。 例如:

x = bytes([1,10,100]) # x is shown as b'\x01\nd' where last 'd' is ASCII letter
list(x) # get as a list of numbers

要将您的 pandas dataframe 转换为看起来像火花一,请使用:

df['BASE_PERIOD_VECTOR'].apply(list)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM