我已经从.txt下载了诺阿文件,如下所示:
WBAN,Date,Time,StationType,SkyCondition,SkyConditionFlag,Visibility,VisibilityFlag,WeatherType,WeatherTypeFlag,DryBulbFarenheit,DryBulbFarenheitFlag,DryBulbCelsius,DryBulbCelsiusFlag,WetBulbFarenheit,WetBulbFarenheitFlag,WetBulbCelsius,WetBulbCelsiusFlag,DewPointFarenheit,DewPointFarenheitFlag,DewPointCelsius,DewPointCelsiusFlag,RelativeHumidity,RelativeHumidityFlag,WindSpeed,WindSpeedFlag,WindDirection,WindDirectionFlag,ValueForWindCharacter,ValueForWindCharacterFlag,StationPressure,StationPressureFlag,PressureTendency,PressureTendencyFlag,PressureChange,PressureChangeFlag,SeaLevelPressure,SeaLevelPressureFlag,RecordType,RecordTypeFlag,HourlyPrecip,HourlyPrecipFlag,Altimeter,AltimeterFlag
00102,20150101,0001,0,OVC043, ,10.00, , , ,27, ,-2.8, ,26, ,-3.1, ,25, ,-3.9, , 92, , 0, ,000, , , ,30.05, , , , , ,30.36, ,AA, , , ,30.23,
00102,20150101,0101,0,OVC045, ,10.00, , , ,27, ,-2.8, ,26, ,-3.1, ,25, ,-3.9, , 92, , 6, ,080, , , ,30.07, , , , , ,30.37, ,AA, , , ,30.25,
00102,20150101,0201,0,OVC047, ,10.00, , , ,26, ,-3.3, ,25, ,-3.7, ,24, ,-4.4, , 92, , 6, ,090, , , ,30.08, , , , , ,30.39, ,AA, , , ,30.26,
00102,20150101,0301,0,OVC049, ,10.00, , , ,26, ,-3.3, ,25, ,-3.7, ,24, ,-4.4, , 92, , 7, ,100, , , ,30.09, , , , , ,30.40, ,AA, , , ,30.27, 然后我创建了下表:
CREATE EXTERNAL TABLE weather(WBAN STRING, `Date` STRING, Time STRING, StationType INT, SkyCondition STRING, SkyConditionFlag STRING, Visibility INT, VisibilityFlag STRING, WeatherType STRING, WeatherTypeFlag STRING, DryBulbFarenheit INT, DryBulbFarenheitFlag STRING, DryBulbCelsius DECIMAL, DryBulbCelsiusFlag INT, WetBulbFarenheit INT, WetBulbFarenheitFlag INT, WetBulbCelsius DECIMAL, WetBulbCelsiusFlag INT, DewPointFarenheit INT, DewPointFarenheitFlag INT, DewPointCelsius DECIMAL, DewPointCelsiusFlag INT, RelativeHumidity INT, RelativeHumidityFlag INT, WindSpeed INT, WindSpeedFlag INT, WindDirection INT, WindDirectionFlag INT, ValueForWindCharacter INT, ValueForWindCharacterFlag INT, StationPressure DECIMAL, StationPressureFlag INT, PressureTendency INT, PressureTendencyFlag INT, PressureChange INT, PressureChangeFlag INT, SeaLevelPressure DECIMAL, SeaLevelPressureFlag INT, RecordType STRING, RecordTypeFlag STRING, HourlyPrecip DECIMAL, HourlyPrecipFlag INT, Altimeter DECIMAL, AltimeterFlag INT)
COMMENT 'Our weather table in HIVE!'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION '/data/Weather';现在,如果我尝试以下简单的查询:
hive> select * from weather limit 10;我得到的结果如下所示,用Null替换某些列的名称!
WBAN Date Time NULL SkyCondition SkyConditionFlag NULL VisibilityFlag WeatherType WeatherTypeFlag NULL DryBulbFarenheitFlag NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULLNULL NULL NULL NULL NULL NULL NULL NULL NULL RecordType RecordTypeFlag NULL NULL NULL NULL
00102 20150101 0001 0 OVC043 10 27 -3 NULL 26 NULL -3 NULL25 NULL -4 NULL NULL NULL NULL NULL 0 NULL NULL NULL 30 NULL NULL NULL NULL NULL 30 NULL AA NULL NULL 30 NULL
00102 20150101 0101 0 OVC045 10 27 -3 NULL 26 NULL -3 NULL25 NULL -4 NULL NULL NULL NULL NULL 80 NULL NULL NULL 30 NULL NULL NULL NULL NULL 30 NULL AA NULL NULL 30 NULL
00102 20150101 0201 0 OVC047 10 正如您可能注意到的,第四列和第七列(以及后面的许多列)在应该是StationType和可见性时都是斜空的.等等!
即使我试过:
hive> select Visibility from weather limit 10;我将得到正确的结果,但使用空列标题/名称!
为什么是空列名/标题?!
发布于 2016-11-13 12:14:53
有趣的问题,我花了一分钟才意识到是怎么回事,但有了正确的蜂巢知识,这是显而易见的!
所以,把1和2放在一起:
Describe Weather这样的查询中可以看到。建议:
尝试摆脱第一行,最好是在创建外部表之前。
发布于 2019-05-01 18:11:10
要添加以上丹尼斯的注释,如果您使用的是CSV SerDe,可以跳过插入到表中的第一行,如下所示:
CREATE EXTERNAL TABLE cases (
id INT,
case_number STRING,
name STRING,
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS TEXTFILE
LOCATION '/hdfs/path'
tblproperties("skip.header.line.count"="1");执行部分如下:
tblproperties("skip.header.line.count"="1")https://stackoverflow.com/questions/40573474
复制相似问题