外部表查詢不跳過標題行

外部蜂巢表不跳過從火花SQL查詢時的標題行。

寫的manisha.jena

去年發表在:2022年5月24日

問題

您正試圖查詢外部蜂巢表,但它一直未能跳過標題行,即使TBLPROPERTIES (' skip.header.line.count ' = ' 1 ')在HiveContext中設置。

你可以複製這個問題用這個樣本代碼通過創建一個表。

% sql創建外部表school_test_score('學校' varchar (254),“student_id”varchar(254),“性別”varchar(254),“預備考試”varchar(254),後續測試的varchar(254))行格式分隔字段終止由”、“行終止“\ n”存儲為INPUTFORMAT org.apache.hadoop.mapred。TextInputFormat OUTPUTFORMAT org.apache.hadoop.hive.ql.io。HiveIgnoreKeyTextOutputFormat“位置”dbfs: / FileStore / table_header / TBLPROPERTIES (skip.header.line。數' = ' 1 ')

如果你想從表中選擇第一個五行,第一行是標題行。

%的sql SELECT * FROM school_test_score限製5

表輸出與標題行第一個數據行。

導致

如果你直接從蜂巢查詢,標題行是正確的跳過。Apache火花不承認skip.header.line.count在HiveContext屬性,所以它不跳過標題行。

火花和設計行為。

解決方案

您需要使用火花選項來創建表和一個頭的選擇。

% sql創建表student_test_score(學校字符串,student_id字符串,性別字符串,字符串進行預測,後續測試字符串)使用CSV選項(路徑“dbfs: / FileStore / table_header /分隔符“,”頭“true”);

從表中選擇第一個五行,不包括標題行。

%的sql SELECT * FROM school_test_score限製5

表輸出標題行跳過。