我从 dynamoDB 导出的表之一中有以下数据:
...
SUID{
"s": {\"profileElementType\":\"1\",\"version\":0,\"seq\":1,\"sUid\":\"15141\"}"
}
OPTED{
"s": "{\"profileElementType\":\"2\",\"version\":0,\"seq\":4,\"value\":\"1\"}"
...
我按如下方式创建了配置单元表:
CREATE EXTERNAL TABLE IF NOT EXISTS DATA_FULL (item map<string, string> )
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "ORIGINAL_DATA");
我想了解如何在 HiveQL 中编写 WHERE 子句来处理此类数据。
我尝试了以下 HiveQL:
SELECT * FROM DATA_FULL where item['SUID'] LIKE '%15141%';
没有结果。
SELECT item['SUID'],item['OPTED'] FROM DATA_FULL where
(item['OPTED'] LIKE '%\"value\":\"0\"%' or item['OPTED'] LIKE
'%\"value\":\"2\"%');
没有结果(上面的 HiveQL 尝试从该表中提取值,该表具有像“Value:0”这样的 OPTED 或像“Value:2”这样的 OPTED