【问题标题】:Select a column starting with '@' in databricks sql在databricks sql中选择以'@'开头的列
【发布时间】:2021-08-08 12:10:22
【问题描述】:

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

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

现在挑战:我的一个字段名称称为 @timestamp,我可以看到数据块显示该列存在,但我无法选择该列本身。在 T-SQL 中,我本来可以使用方括号 [@timestamp] 并继续前进,但它在 hivesql 中不起作用。

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

【问题讨论】:

    标签: elasticsearch logstash hiveql databricks


    【解决方案1】:

    使用反引号`

    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|
    +----------+--------+
    

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      相关资源
      最近更新 更多