2015-09-02 15 views
7

Tôi có tệp Parquet không nén mà có loại dữ liệu "trình thu thập thông tin".Nhập khẩu Spark của các tệp Parquet chuyển đổi chuỗi thành bytearray

tôi nhập nó vào Spark qua PySpark như

sq = SQLContext(sc) p = sq.read.parquet('/path/to/stored_as_parquet/table/in/hive') p.take(1).show()

Điều này cho thấy các chuỗi trong các nguồn dữ liệu chuyển đổi sang

Row(host=bytearray(b'somehostname'), (checksum=bytearray(b'stuff'))...)

Khi tôi làm p.dtypes tôi thấy

((host binary), (checksum binary) ....).

tôi có thể làm gì để tránh chuyển đổi này hoặc luân phiên làm cách nào để chuyển đổi trở lại với những gì tôi cần

ví dụ: khi tôi làm p.dtypes Tôi muốn nhìn thấy

((host string), (checksum string) ....)

Cảm ơn.

+0

Ván sàn có thể được giải nén không? Làm thế nào là các tập tin Parquet được tạo ra? Có vẻ như nó đang được viết như một biểu tượng ... –

+0

chính tệp gỗ có tất cả mọi thứ được khai báo là chuỗi và trong đó nó hiển thị dưới dạng chuỗi - nó được tạo ra như là kết quả của việc viết ra từ tia lửa là kết quả của một công việc ETL. Như một bảng hive nó có vẻ tốt. Khi tôi kéo các bảng con của nó thành Spark, tôi nhận được hành vi này. – Nitin

+0

Tôi đã không yêu cầu một cách rõ ràng cho nó được nén khi tạo và các thông báo INFO nói rằng tệp này KHÔNG ĐƯỢC CHẤP NHẬN. – Nitin

Trả lời

7

Tôi đã gặp phải sự cố tương tự. Thêm

sqlContext.setConf("spark.sql.parquet.binaryAsString","true") 

ngay sau khi tạo SqlContext, giải quyết nó cho tôi.

+0

tự hỏi tại sao điều này là sai theo mặc định – enneppi

Các vấn đề liên quan