2016-08-20 8 views
5

में विभाजन की भविष्यवाणी करते समय भी कोई विभाजन अनुमान नहीं मिला है, मेरे पास hdfs में एक तालिका pos.pos_inv है जो yyyymm द्वारा विभाजित है। नीचे दिए गए क्वेरी है:विभाजन को वर्तमान में क्वेरी

select DATE_ADD(to_date(from_unixtime(unix_timestamp(Inv.actvydt, 'MM/dd/yyyy'))),5), 
     to_date(from_unixtime(unix_timestamp(Inv.actvydt, 'MM/dd/yyyy'))),yyyymm 
    from pos.pos_inv inv 
     INNER JOIN pos.POSActvyBrdg Brdg ON Brdg.EIS_POSActvyBrdgId = Inv.EIS_POSActvyBrdgId 
     where to_date(from_unixtime(unix_timestamp(Inv.nrmlzdwkenddt, 'MM/dd/yyyy'))) 
     BETWEEN DATE_SUB(to_date(from_unixtime(unix_timestamp(Inv.actvydt, 'MM/dd/yyyy'))),6) 
     and DATE_ADD(to_date(from_unixtime(unix_timestamp(Inv.actvydt, 'MM/dd/yyyy'))),6) 
     and inv.yyyymm=201501 

मैं 201,501 के रूप में क्वेरी के लिए विभाजन मूल्य प्रदान की है, लेकिन अभी भी मैं त्रुटि "प्राप्त

Error while compiling statement: FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "inv" Table "pos_inv" 

(स्कीमा) विभाजन, YYYYMM पूर्णांक प्रकार और actvydt है दिनांक स्ट्रिंग प्रकार के रूप में संग्रहीत किया जाता है।

+1

जेफ़, आप जिस छिद्र का उपयोग कर रहे हैं, मुझे लगता है कि कुछ खुले जिरा मुद्दे हैं (https://issues.apache.org/jira/browse/HIVE-4905, https://issues.apache.org/जिरा/ब्राउज/HIVE-10454 ) इस समस्या से संबंधित जब विभाजन पूर्वानुमान कॉलम का उपयोग जुड़ने के संयोजन में किया जाता है, यदि आप हाइव के पुराने संस्करण का उपयोग कर रहे हैं, तो मैपर्ड मोड को गैर-प्रतिबंधित करने के लिए सेट करें और क्वेरी 'set hive.mapred' चलाएं। मोड = nonstrict' – Aditya

+1

यदि मैं set hive.mapred.mode = nonstrict सेट का उपयोग करता हूं, तो संपूर्ण डेटा सेट को विशेष विभाजन मान के बजाय स्कैन किया जाता है। – jeff

+0

जेफ़, मैंने सोचा कि यह अभी के लिए एक कामकाज है, हो सकता है कि यह पैच नवीनतम संस्करण में अपडेट हो जाएं, हाइव का कौन सा संस्करण आपका है, यह उच्च संस्करण में प्रयास करना संभव है? – Aditya

उत्तर

4

यह छत्ता क्योंकि होता सख्त मोड पर सेट किया जाता है। इस विभाजन तालिका HDFS में संबंधित विभाजन/फ़ोल्डर का उपयोग करने की अनुमति देते हैं।

set hive.mapred.mode=unstrict; it will work 
संबंधित मुद्दे