簡體   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