首页 文章

获取分区拼花数据框的最新模式

提问于
浏览
1

我们开始使用火花和镶木地板文件在hadoop集群中收集数据......但是我们很难保证镶木地板模式将来不会改变 . 我们试图找到读取parquets的最佳方式,即使架构发生变化......

我们要实施的规则是最新的镶木地板文件将是我们的参考...

我们做了不同的测试包括:

  • spark.read.parquet("test").filter("year=2017 and month=10 and day>=15")

  • spark.read.parquet("test/year=2017/month=10/day=17","test/year=2017/month=10/day=16","test/year=2017/month=10/day=15")

  • //使用不同的顺序进行测试

  • spark.read.parquet("test/year=2017/month=10/day={15,16,17}")

等等...

并且read方法保留的模式始终是最旧的模式(即10月15日的模式) .

有人知道如何获得最新的架构(即十月十七日)吗?

当然spark.read.option(“mergeSchema”,“true”)不起作用,因为如果我们在最新的镶木地板中删除了一列,它就不会删除一列 . 我们在这里进行了3天的测试......但可能会在很大范围的分区上进行测试 .

提前致谢

问候

1 回答

  • 1

    我在pyspark写这篇文章 . 应适用于其他语言 .

    schema = spark.read.parquet("test/year=2017/month=10/day=17/").schema
    df = spark.read.schema(schema).parquet("test/*/*/*/")
    

相关问题