hive unbase64()函数的结果在配置单元表中是正确的,但在输出文件中是错误的

p1iqtdky  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(606)

有两个问题:
我用 unbase64() 处理数据和输出都是完全正确的 Hive 以及 SparkSQL . 但是在 Presto ,它显示:

然后我将数据插入到本地路径和 hdfs ,并且两个输出文件中的数据都是错误的:

我用来插入数据的代码:

insert overwrite directory '/tmp/ssss'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
select * from tmp_ol.aaa;

我的问题是:1。为什么处理后的数据可以在两种语言中正确显示 hive 以及 SparkSQL 但是 Presto ? 我机器上的presto可以显示这种字符。
为什么数据不能在输出文件中正确显示?文件在里面 utf-8 格式。

bfhwhh0e

bfhwhh0e1#

可以尝试对unbase64()函数的输出使用cast(作为字符串)。

spark.sql("""Select CAST(unbase64('UsImF1dGhvcml6ZWRSZXNvdXJjZXMiOlt7Im5h') AS STRING) AS values FROM dual""").show(false)```

相关问题