如何在解密后从配置单元导出csv中的一行中删除额外的选项卡



从配置单元导出数据时面临问题:

Hive版本:2.6.5

大查询输出错误中的质量检查:错误消息:从位置2121402186开始的行中的值太多。发现22列,而预期为21

步骤1:使用命令将数据从配置单元导出到csv中

beeline -u $HIVE_JDBC_URLL --silent=true --outputformat=tsv2 --showHeader=false --silent=true -e " SELECT
a.abc,
a.mno,
a.xyz,
CASE
WHEN a.xyz LIKE '%=%' THEN DECRYPT(STRING(b.decryptid), STRING(xyz))
ELSE a.xyz
END as xyz,
FROM
db.a a
LEFT JOIN
b
ON
(a.abc = b.def)" > "/tmp/abc.csv"

第二步:将这个文件上传到大查询,看看数据加载是否正确。

Bigquery失败,出现上述错误消息。我的猜测是,解密后,它在整个文件的几行中添加了一个额外的选项卡。请建议一种从文件中找出额外选项卡的方法,以便使用ansible自动执行此操作。

还有一种可能的方法,在从配置单元提取到csv时对字段进行双引号引用,这样我们就可以避免额外的选项卡了?请建议应该向直线命令中添加什么来执行此操作?

如何验证每行中的列数?

I由于配置单元导出问题,生成了错误或添加了一个额外的选项卡,我不得不使用regex_replace来解决它。

regexp_replace(a.xyz,'\t\t,''(为xyz,

相关内容

  • 没有找到相关文章

最新更新