r - R 通过 RODBC 访问 Azure DataBricks 中的镶木地板文件
问题描述
我成功配置了与 Azure DataBricks 集群的连接,并且可以使用以下命令查询表
conn <- odbcConnect("AzureDatabricks")
sqlQuery(conn, "SELECT * FROM my_table")
但我需要访问镶木地板文件。在 Databricks 中,我可以使用以下代码:
%sql
Select * FROM parquet.`/path/to/folder`
如果我用 R 试试这个
sqlQuery(conn, "Select * FROM parquet.`/path/to/folder`")
我收到错误:
[Simba][SQLEngine] Table or view not found: SPARK.parquet./path/to/folder"
[RODBC] ERROR: Could not SQLExecDirect 'Select * FROM parquet.`/path/to/folder`
有没有办法通过 RODBC 访问镶木地板文件?
解决方案
由于您的 sql 查询本身存在错误,您遇到了此问题。运行Select * FROM parquet./path/to/folder
命令时,由于语法错误,您将看不到 table 或 view not found。
示例:用于理解问题的示例示例(当您运行 SELECT * FROM parquer.'somepath' 时),您将看到语法错误。
注意:从 parquet 文件创建 Dataframe 后,您必须将其注册为临时表才能在其上运行sql 查询。
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.read.parquet("src/main/resources/peopleTwo.parquet")
df.printSchema
// after registering as a table you will be able to run sql queries
df.registerTempTable("people")
sqlContext.sql("select * from people").collect.foreach(println)
推荐阅读
- php - 是否有任何用于使用 API 身份验证(护照)的 laravel 多身份验证的库文件?
- angularjs - 查找和更新嵌套数组
- python - 使用 Python 从 Google Doc 收集文档文本
- java - MySql 的行数并插入到计数的表中
- android - FLutter 应用在 Nougat 7.0 上停止
- bash - 自动化 ssh 响应
- python - django-MPTT 下钻模板
- javascript - 如何将外部数组加载到 jquery 变量中?
- ios - 获取 json 响应但无法解析到标签
- c# - 数据类型 image 和 varbinary(max) 在 equal to 运算符中不兼容