2017-08-03 9 views
5

मैं एस 3 बाल्टी से सीएसवी डेटा पढ़ने और एडब्ल्यूएस एथेना में एक टेबल बनाने की कोशिश कर रहा हूं। जब बनाई गई मेरी तालिका मेरी सीएसवी फ़ाइल की शीर्षलेख जानकारी को छोड़ने में असमर्थ थी।जब हम s3 में csv फ़ाइल से डेटा पढ़ रहे हैं और aws athena में एक टेबल बना रहे हैं तो हेडर को कैसे छोड़ें।

क्वेरी उदाहरण:

CREATE EXTERNAL TABLE IF NOT EXISTS table_name ( `event_type_id` 
    string, `customer_id` string, `date` string, `email` string) 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
    WITH 
    SERDEPROPERTIES ( "separatorChar" = "|", "quoteChar"  = "\"") 
    LOCATION 's3://location/' 
    TBLPROPERTIES ("skip.header.line.count"="1"); 

skip.header.line.count काम करने के लिए प्रतीत नहीं होता। लेकिन यह काम नहीं करता है। मुझे लगता है कि Aws के साथ कुछ मुद्दा है। क्या कोई और तरीका है जिससे मैं इसे प्राप्त कर सकता हूं?

उत्तर

1

यह वही है Redshift में काम करता है:

आप, अगर आप चाहते table properties ('skip.header.line.count'='1') अन्य संपत्तियों के साथ साथ उपयोग करना चाहते हैं जैसे 'numRows'='100'। यहां एक नमूना है:

create external table exreddb1.test_table 
(ID BIGINT 
,NAME VARCHAR 
) 
row format delimited 
fields terminated by ',' 
stored as textfile 
location 's3://mybucket/myfolder/' 
table properties ('numRows'='100', 'skip.header.line.count'='1'); 
+0

यहाँ एडब्ल्यूएस Redshift एसक्यूएल प्रलेखन "बाहरी टेबल बनाएं", http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_TABLE.html पर है – TheWalkingData

1

यह एक ज्ञात कमी है।

सबसे अच्छा तरीका मैंने देखा है tweeted by Eric Hammond था:

...WHERE date NOT LIKE '#%' 

यह एक क्वेरी के दौरान हैडर लाइनों को छोड़ प्रतीत होता है। मुझे यकीन नहीं है कि यह कैसे काम करता है, लेकिन यह एनयूएलएस को छोड़ने का एक तरीका हो सकता है।

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