Select 数据块中以“@”开头的列 sql

Select a column starting with '@' in databricks sql

我正在通过 logstash 进入 elasticsearch。 我将数据导入数据块,首先通过 python 扫描,然后将数据转换为数据帧 然后将数据框转换为数据块中的临时视图。然后可以在 sql 建模中使用此视图。此过程无法更改

当我查询时:Select * from tempview 然后我得到所有列:)

现在的挑战是:我的一个字段名为 @timestamp,我可以看到数据块显示该列在那里,但我不能 select专栏本身。在 T-SQL 中,我本来可以使用方括号 [@timestamp] 并继续前进,但它在 hivesql.

中不起作用

我知道@name 语法是为 sql 变量保留的,但是有解决方法吗?

使用反引号`

select `@timestamp`, `@version` from t

Spark shell 示例:

Seq((1, "a", "10")).toDF("id", "@version", "@timestamp").registerTempTable("t")
sql ("select `@timestamp`, `@version` from t").show

+----------+--------+
|@timestamp|@version|
+----------+--------+
|        10|       a|
+----------+--------+