2015-09-02 7 views
7

मेरे पास एक असम्पीडित पैराक्वेट फ़ाइल है जिसमें डेटा "क्रॉलर लॉग" प्रकार है।लकड़ी की छत फ़ाइलों का स्पार्क आयात तारों को बदलता है

मैं

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

यह

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

करने के लिए परिवर्तित स्रोत डेटा में तार जब मैं p.dtypes कर रहा

देखने से पता चलता के रूप में PySpark के माध्यम से स्पार्क में आयात

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

क्या मैं इस रूपांतरण से बचने के लिए क्या कर सकते हैं या फिर कैसे कर मैं वापस मैं क्या

अर्थात जरूरत में बदलने का है जब मैं p.dtypes कर मैं देखना

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

धन्यवाद करना चाहता हूँ।

+0

क्या लकड़ी की छत असंपीड़ित हो सकती है? लकड़ी की छत फ़ाइल कैसे बनाई जा रही है? ऐसा लगता है कि इसे एक बाइटियर के रूप में लिखा जा रहा है .... –

+0

लकड़ी की छत फ़ाइल में स्ट्रिंग के रूप में घोषित सबकुछ है और यह छिद्र में स्ट्रिंग के रूप में प्रस्तुत होता है - यह ईटीएल नौकरी के परिणामस्वरूप स्पार्क से लिखने के परिणामस्वरूप बनाया जाता है। एक हाइव टेबल के रूप में यह ठीक लग रहा है। जब मैं स्पार्क में इसे सबसेट टेबल खींचता हूं तो मुझे यह व्यवहार मिलता है। – Nitin

+0

मैंने स्पष्ट रूप से इसे सृजन पर संपीड़ित करने के लिए नहीं कहा था और आईएनएफओ संदेशों का कहना है कि फ़ाइल संयुक्त राष्ट्र है। – Nitin

उत्तर

7

मैं एक ही समस्या में भाग गया।

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

मेरे एसक्यूएलएन्टेक्स्ट बनाने के ठीक बाद, इसे मेरे लिए हल किया गया।

+0

सोच रहा है कि यह डिफ़ॉल्ट रूप से गलत क्यों है – enneppi

संबंधित मुद्दे