Will all nested columns be read in an ORC file?












0















Say I have a Hive query like so:



CREATE TABLE student (key string, name string, course struct<class_name:string, class_teacher:string>) 
STORED AS ORC;


Because of the ORC file format, this will create 5 different columns:



| key | name | course | course.class_name | course.class_teacher |


When attempting to read only the course.class_name column, will both subcolumns of course be read anyway, every time? As in, both course.class_name and course.class_teacher ? As far as I am aware, ORC file format allows Hive to load only the columns needed for the query. So what will it actually do?










share|improve this question



























    0















    Say I have a Hive query like so:



    CREATE TABLE student (key string, name string, course struct<class_name:string, class_teacher:string>) 
    STORED AS ORC;


    Because of the ORC file format, this will create 5 different columns:



    | key | name | course | course.class_name | course.class_teacher |


    When attempting to read only the course.class_name column, will both subcolumns of course be read anyway, every time? As in, both course.class_name and course.class_teacher ? As far as I am aware, ORC file format allows Hive to load only the columns needed for the query. So what will it actually do?










    share|improve this question

























      0












      0








      0








      Say I have a Hive query like so:



      CREATE TABLE student (key string, name string, course struct<class_name:string, class_teacher:string>) 
      STORED AS ORC;


      Because of the ORC file format, this will create 5 different columns:



      | key | name | course | course.class_name | course.class_teacher |


      When attempting to read only the course.class_name column, will both subcolumns of course be read anyway, every time? As in, both course.class_name and course.class_teacher ? As far as I am aware, ORC file format allows Hive to load only the columns needed for the query. So what will it actually do?










      share|improve this question














      Say I have a Hive query like so:



      CREATE TABLE student (key string, name string, course struct<class_name:string, class_teacher:string>) 
      STORED AS ORC;


      Because of the ORC file format, this will create 5 different columns:



      | key | name | course | course.class_name | course.class_teacher |


      When attempting to read only the course.class_name column, will both subcolumns of course be read anyway, every time? As in, both course.class_name and course.class_teacher ? As far as I am aware, ORC file format allows Hive to load only the columns needed for the query. So what will it actually do?







      hadoop hive bigdata hiveql orc






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 1 at 19:19









      crystyxncrystyxn

      279726




      279726
























          1 Answer
          1






          active

          oldest

          votes


















          2














          Your understanding is right. It will read the only column which is specified in the select query.

          If select query is :



          Select course.class_name from student


          It will return only class_name.

          In case if you want to query all the columns for the struct, you can use following.



          select key, name, c.* from students 
          lateral view inline (array(course)) c





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998256%2fwill-all-nested-columns-be-read-in-an-orc-file%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            Your understanding is right. It will read the only column which is specified in the select query.

            If select query is :



            Select course.class_name from student


            It will return only class_name.

            In case if you want to query all the columns for the struct, you can use following.



            select key, name, c.* from students 
            lateral view inline (array(course)) c





            share|improve this answer




























              2














              Your understanding is right. It will read the only column which is specified in the select query.

              If select query is :



              Select course.class_name from student


              It will return only class_name.

              In case if you want to query all the columns for the struct, you can use following.



              select key, name, c.* from students 
              lateral view inline (array(course)) c





              share|improve this answer


























                2












                2








                2







                Your understanding is right. It will read the only column which is specified in the select query.

                If select query is :



                Select course.class_name from student


                It will return only class_name.

                In case if you want to query all the columns for the struct, you can use following.



                select key, name, c.* from students 
                lateral view inline (array(course)) c





                share|improve this answer













                Your understanding is right. It will read the only column which is specified in the select query.

                If select query is :



                Select course.class_name from student


                It will return only class_name.

                In case if you want to query all the columns for the struct, you can use following.



                select key, name, c.* from students 
                lateral view inline (array(course)) c






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 2 at 12:41









                Nishu TayalNishu Tayal

                12.6k73482




                12.6k73482
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998256%2fwill-all-nested-columns-be-read-in-an-orc-file%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Monofisismo

                    Angular Downloading a file using contenturl with Basic Authentication

                    Olmecas