Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark 从多个文件夹读取增量表_Pyspark_Databricks_Azure Data Lake_Azure Databricks_Pyspark Dataframes - Fatal编程技术网

Pyspark 从多个文件夹读取增量表

Pyspark 从多个文件夹读取增量表,pyspark,databricks,azure-data-lake,azure-databricks,pyspark-dataframes,Pyspark,Databricks,Azure Data Lake,Azure Databricks,Pyspark Dataframes,我在做一个数据库。我像这样读取我的增量表: path = "/root/data/foo/year=2021/" df = spark.read.format("delta").load(path) 但是在year=2021文件夹中,每天都有子文件夹day=01,day=02,day=03,等等 例如,我如何阅读第4、5、6天的文件夹 编辑#1 我正在阅读不同问题的答案,似乎实现这一点的正确方法是使用应用于分区列的过滤器 edit2 尝试下面的一些答案是

我在做一个数据库。我像这样读取我的增量表:

path = "/root/data/foo/year=2021/"
df = spark.read.format("delta").load(path)
但是在
year=2021
文件夹中,每天都有子文件夹
day=01
day=02
day=03
,等等

例如,我如何阅读第4、5、6天的文件夹

编辑#1

我正在阅读不同问题的答案,似乎实现这一点的正确方法是使用应用于分区列的过滤器

edit2

尝试下面的一些答案是我遇到的消息错误(开始时我没有看到):


将它们列为用逗号分隔的值,并用花括号括起来

path = "/root/data/foo/year=2021/{04,05,06}/"


读取分区增量表的更好方法似乎是在分区上应用筛选器:

df = spark.read.format("delta").load('/whatever/path')
df2 = df.filter("year = '2021' and month = '01' and day in ('04','05','06')")
  • Remove.format(“delta”)。从源代码路径

  • 在自定义项下使用

    def fileexists(文件路径,FromDay,ToDay): mylist=dbutils.fs.ls(文件路径) maxcount=len(mylist)-今天+1 maxcount1=maxcount-FromDay 返回[mylist中项目的项目[0][maxcount1:maxcount]

    filepath=Parent File Path=“/root/data/foo/year=2021/” FromDay=开始日期文件夹 今天=结束日文件夹


  • 注意:根据您的要求更改功能。

    它不工作。。。regex没有被解释为regex,而是被解释为一个简单的字符串……我有以下错误`AnalysisException:example_path/year=2021/month=01/day=0[4-6]不存在`我在看一张三角表,可能不一样。是的,我查过了path@SimonBreton也许试试我编辑过的答案?不,我也有错误
    path = "/root/data/foo/year=2021/[04,05,06]/"
    path = "/root/data/foo/year=2021/0[4|5|6]/"
    
    df = spark.read.format("delta").load('/whatever/path')
    df2 = df.filter("year = '2021' and month = '01' and day in ('04','05','06')")