hive - 使用动态 JSON Schema 在 Hive 中加载 Json 文件
问题描述
我正在尝试将yelp_business JSON 加载到 hive 表中,但无法在 hive 中为这个 json 文件创建模式。请让我知道如何在 hive 中为以下内容创建模式。根据业务的不同,hive 中的属性会发生变化,我在创建表时使用 json serde。
{
"business_id": "8-NRKkPY1UiFXW20WXKiXg",
"name": "Filiberto's Mexican Food",
"neighborhood": "",
"address": "1440 N. Dysart Ave",
"city": "Avondale",
"state": "AZ",
"postal_code": "85323",
"latitude": 33.4481059352,
"longitude": -112.341302074,
"stars": 2.5,
"review_count": 40,
"is_open": 1,
"attributes": {
"Alcohol": "none",
"Ambi
ence": "{'romantic': False, 'intimate': False, 'classy': False, 'hipster': False, 'divey': False, 'touristy': False, 'trendy': False, 'upscale': False, 'c
asual': True}",
"BikeParking": "True",
"BusinessAcceptsCreditCards": "True",
"BusinessParking": "{'garage': False, 'street': False, 'validated': False, 'lot':
True, 'valet': False}",
"Caters": "False",
"GoodForKids": "True",
"GoodForMeal": "{'dessert': False, 'latenight': True, 'lunch': False, 'dinner': False, 'break
fast': False, 'brunch': False}",
"HasTV": "False",
"NoiseLevel": "average",
"OutdoorSeating": "False",
"RestaurantsAttire": "casual",
"RestaurantsDelivery": "False
",
"RestaurantsGoodForGroups": "True",
"RestaurantsPriceRange2": "1",
"RestaurantsReservations": "False",
"RestaurantsTableService": "False",
"RestaurantsTakeOut"
: "True",
"WheelchairAccessible": "True",
"WiFi": "no"
},
"categories": "Mexican, Restaurants",
"hours": {
"Monday": "0:0-0:0",
"Tuesday": "0:0-0:0",
"Wednesday": "0:0-0
:0",
"Thursday": "0:0-0:0",
"Friday": "0:0-0:0",
"Saturday": "0:0-0:0",
"Sunday": "0:0-0:0"
}
}
{
"business_id": "UTm5QZThPQlT35mkAcGOjg",
"name": "Maggie & Stella's Gifts",
"neighborhood": "Oakland",
"address": "209 Oakland Ave",
"city": "Pittsburgh",
"state"
: "PA",
"postal_code": "15213",
"latitude": 40.4414214,
"longitude": -79.9564571,
"stars": 3.5,
"review_count": 3,
"is_open": 1,
"attributes": {
"BikeParking": "True",
"Bu
sinessAcceptsCreditCards": "True",
"BusinessParking": "{'garage': False, 'street': False, 'validated': False, 'lot': False, 'valet': False}",
"RestaurantsPri
ceRange2": "2"
},
"categories": "Flowers & Gifts, Gift Shops, Shopping",
"hours": {
"Monday": "9:0-18:0",
"Tuesday": "9:0-18:0",
"Wednesday": "9:0-18:0",
"Thursday": "
9:0-18:0",
"Friday": "9:0-17:0",
"Saturday": "10:0-17:0"
}
}
解决方案
Hive 不处理动态模式。
您可以做的是提供天气适用与否的所有属性。
推荐阅读
- c++ - 为什么 range::accumulate 在调用时不将 init 作为 std::move(init) 传递?
- javascript - z-index 不适用于在反应中创建的模态并且模态未出现在顶部
- splunk - 如何使用在 Splunk 中使用的正则表达式根据需要突出显示文本?
- javascript - CSS:每隔几秒改变一次背景?
- amazon-web-services - 来自 EC2 实例的 S3 完全访问配置
- java - FlatMap 一个可迭代对象并将其组合回可迭代对象
- c++ - 有没有办法在 Python 中做“模板基类”?
- docker - Dockerfile 可以 COPY 文件到声明的卷中,但是 RUN 不能创建文件?
- firebase - 加载设置 Firebase 设置时发生未知错误。Firebase 控制台故障
- regex - 如何在 Apache 中通过 URL 设置 HTTP 标头差异