如何在Databricks Notebook中使用R读取指定数据表?
在Databricks Notebook中用R读取指定数据表的方法
针对你需要读取sandbox_did_sio_phernandez.ESM_T_DL_Eventos5表的需求,提供两种可行方案:
方案一:直接用R的Spark SQL读取
和Python的逻辑一致,在R单元格中使用spark.sql直接查询Hive元数据中的表,不需要依赖Delta格式:
%r # 读取整张表 df <- spark.sql("SELECT * FROM sandbox_did_sio_phernandez.ESM_T_DL_Eventos5") # 展示数据 display(df)
这里返回的df是Spark DataFrame,支持后续分布式操作;如果需要转换成本地R的data.frame(仅适合小数据量场景),可以用collect():
%r local_df <- collect(df)
方案二:跨语言迁移已读取的数据
如果你已经通过Python读取了数据,可以将其注册为临时视图,再在R环境中读取:
- 先在Python单元格创建临时视图:
%python dat = spark.sql('Select * from sandbox_did_sio_phernandez.ESM_T_DL_Eventos5') # 创建临时视图,供其他语言调用 dat.createOrReplaceTempView("temp_eventos_table")
- 在R单元格读取该临时视图:
%r df <- spark.sql("SELECT * FROM temp_eventos_table") display(df)
说明
你之前尝试的read.df失效是因为指定了source = "delta",而公司禁止使用Delta格式。上述两种方案都是直接读取Hive元数据中注册的表,不需要依赖Delta源,符合你的环境要求。
内容的提问来源于stack exchange,提问作者King Blood
相关产品推荐
相关产品推荐

