我是谷歌云控制台的新手,所以这可能是一个微不足道的问题。我正在使用免费层gcp为我的数据科学项目。我正在dataproc集群上运行python笔记本。我使用pyspark作为sparkDataframe加载了存储在外部gcs bucket中的数据,并使用“df.repartition(100).write.saveastable()”以“orc”格式存储在与我的项目相关联的gcs bucket中,使用“path”选项。之后,我删除了我的集群并创建了一个新集群。现在,我无法使用pyspark从gcs bucket加载分区表。我甚至将sparksession配置“spark.sql.warehouse.dir”位置设置为以前保存表的路径。但是,即使在关闭并重新启动sparksession之后,我仍然能够使用“spark.sql.warehouse.dir”访问创建它的集群中的分区表,并访问保存的表路径(使用spark.sql)。但是由于某些原因,在删除并创建一个新的集群之后,我无法执行同样的操作。请帮忙。我花了几个小时,但什么也找不到。编辑:代码截图
2条答案
按热度按时间zphenhs41#
我试过spark.read.orc(“gs://path to bucket\uufolder”),它对我很有用。
m2xkgtsf2#
问题是表元数据存储在hivemetastore中,请参阅此文档。删除集群后,元数据随metastore一起消失,但数据保存在gcs中。
在新集群中,您可以首先直接读取gcs文件,例如:
然后创建一个临时视图以供进一步查询,请参见以下文档: