这将动态地将数据从dynamodb导出到s3。
-- Load S3 Table with data from DynamoDB
INSERT OVERWRITE TABLE s3_table SELECT * FROM dynamodb_table;
问题是它会在一堆 \N
. 我可以手写它看起来像
-- Load S3 Table with data from DynamoDB
INSERT OVERWRITE TABLE s3_table SELECT DCS_ID, CASE WHEN MAKE IS NULL THEN "" ELSE MAKE END, CASE WHEN MODEL IS NULL THEN "" ELSE MODEL END FROM dynamodb_table;
问题是选择列时要说“when column is null then”“else column end”
电流输出如下所示
PORTAL 1.5.1.25.2 2013-08-09 13:45:20.126 2013-08-09 13:45:20.282 \N \N \N \N \N \N
所需的输出如下所示
PORTAL 1.5.1.25.2 2013-08-13 18:18:24.667 2013-08-13 18:18:24.832
1条答案
按热度按时间jucafojl1#
配置单元输出包含null值的字符串“\n”(以区别于空白),因此您必须准备每个列,或者在之后处理输出(如果数据量很大,则可以使用流作业)
我经常使用
coalesce
此函数:coalesce
接受多个参数并返回第一个非null(如果全部为null,则返回null)。在您的示例中,为了避免输出中出现空值,可以执行以下操作: