2015-09-02 14 views
7

"Paletli günlük" türünde bir veriye sahip sıkıştırılmamış bir Parket dosyası var.Parke dosyalarının Spark içeri aktarması dizeleri bytearray'e dönüştürür

Ben

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

Bu benim p.dtypes yaptığımızda ben

bkz

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

dönüştürüldü kaynak verilerde dizeleri gösterdiği gibi PySpark aracılığıyla Kıvılcım aktarın

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

Ben bu dönüşümü önlemek için ne yapabilirim veya ben p.dtypes yaparken dönüşümlü nasıl yaptıklarını ben

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

Teşekkür görmek istiyorum geri ben

yani ne gerek dönüştürmek.

+0

Parke sıkıştırılmamış olabilir mi? Parke dosyası nasıl oluşturulur? Bir bytrayray olarak yazılıyor gibi görünüyor ... –

+0

parke dosyası kendisi dizge olarak bildirilen herşeye sahiptir ve kovan olarak dizeler halinde sunulur - bir ETL işinin sonucu olarak kıvılcımın yazılması sonucu yaratılır. Bir kovan tablosu olarak iyi görünüyor. Subset tablolarını Spark içine aldığımda bu davranışı alırım. – Nitin

+0

Açıkça yaratıldığını ve INFO iletilerinin sıkıştırıldığını ve dosyaların UNCOMPRESSED olduğunu söyledim. – Nitin

cevap

7

Aynı soruna rastladım. SqlContext'i oluşturduktan hemen sonra

ekleyerek benim için çözdüm.

+0

, bunun neden varsayılan olarak yanlış olduğunu merak etme – enneppi