elasticsearch 在databricks sql中选择以“@”开头的列,elasticsearch,logstash,hiveql,databricks,elasticsearch,Logstash,Hiveql,Databricks" /> elasticsearch 在databricks sql中选择以“@”开头的列,elasticsearch,logstash,hiveql,databricks,elasticsearch,Logstash,Hiveql,Databricks" />

elasticsearch 在databricks sql中选择以“@”开头的列

elasticsearch 在databricks sql中选择以“@”开头的列,elasticsearch,logstash,hiveql,databricks,elasticsearch,Logstash,Hiveql,Databricks,我要通过日志进入elasticsearch。 我将数据导入databricks中,首先通过python扫描,然后将数据转换为数据帧 然后将数据帧转换为DataRicks中的临时视图。然后可以在sql建模中使用此视图。这个过程不能改变 当我查询:从tempview中选择*时,我会得到所有列: 现在的挑战是:我的一个字段名叫做@timestamp,我可以看到databricks显示列在那里,但我无法选择列本身。在T-SQL中,我本来可以使用方括号[@timestamp]继续前进,但它在hivesql

我要通过日志进入elasticsearch。 我将数据导入databricks中,首先通过python扫描,然后将数据转换为数据帧 然后将数据帧转换为DataRicks中的临时视图。然后可以在sql建模中使用此视图。这个过程不能改变

当我查询:从tempview中选择*时,我会得到所有列:

现在的挑战是:我的一个字段名叫做@timestamp,我可以看到databricks显示列在那里,但我无法选择列本身。在T-SQL中,我本来可以使用方括号[@timestamp]继续前进,但它在hivesql中不起作用

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

使用反勾号`

select `@timestamp`, `@version` from t
火花壳示例:

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

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