在 Databricks 中使用非 ASCII(希腊字符)创建持久视图时的字符编码问题

问题描述 投票:0回答:1

我尝试使用一个简单的选择语句创建一个持久视图,该语句只有一个带有希腊字符的单词。

CREATE OR REPLACE VIEW misc.XX AS 
SELECT 'ΤΕΣΤ'

如果我尝试选择该视图,我会得到???而不是我输入的单词。

问题似乎是视图定义未正确保存。

这里有任何解决方法吗?该问题仅发生在视图中,当写入表格时,字符按预期显示。

azure encoding databricks
1个回答
0
投票
  • 我已尝试以下解决方法创建一个表,然后创建一个引用该表的视图。
  • 我将希腊字符存储在表中,然后通过视图查询该数据。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

  • 我还有一个使用 pyspark 在 Azure Databricks 中处理非 ASCII 字符(例如希腊字符)的示例。
  • 在下面的代码中,我将 DataFrame 写入表中 适当的编码设置。
spark = SparkSession.builder \
    .appName("handling-non-ascii-characters") \
    .getOrCreate()
data = [('ΤΕΣΤ',)]
df = spark.createDataFrame(data, ['my_column'])
df.show()
df.write.option("encoding", "UTF-8").saveAsTable("misc.my_table02")
spark.sql("CREATE OR REPLACE VIEW misc.my_view02 AS SELECT my_column FROM misc.my_table02")
spark.sql("SELECT * FROM misc.my_view02").show()
spark.sql("DESCRIBE TABLE EXTENDED misc.my_table02").show()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.