elasticsearch - 在databricks sql中选择以'@'开头的列
问题描述
我通过logstash进入elasticsearch。我在databricks中导入数据,首先通过python扫描,然后将数据转换为dataframe。然后将dataframe转换为databricks中的临时视图。然后可以在 sql 建模中使用此视图。此过程无法更改
当我查询时:Select * from tempview
然后我得到所有列:)
现在的挑战:我的一个字段名称称为@timestamp,我可以看到数据块显示该列存在,但我无法选择该列本身。在 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|
+----------+--------+
推荐阅读
- python-3.x - CNN 的标签重塑
- python - keras multiple_gpu_model 导致“无法腌制模块对象”错误
- spring-boot - 带有 Spring Boot 2 的 Keycloak 4.0.0 Beta 2
- codenameone - 代号一 - PickerComponent 的验证器
- swift - 设置好后,如何自动调用 NSSpeechSynthesizerDelegate 协议方法?
- css - 是什么让浮动的 div 宽度缩小?
- vb.net - 如何在 LINQ 中创建变量 Select 语句
- ios - Swift - 多个 UI 更改相互阻塞
- android - Android-在 Firebase 数据库中编写节点内的 Arraylist
- javascript - 在轴和起点之间添加间距