Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Pandas 从日期范围中删除几个日期_Pandas_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Dataframes - Fatal编程技术网

Pandas 从日期范围中删除几个日期

Pandas 从日期范围中删除几个日期,pandas,apache-spark,pyspark,apache-spark-sql,pyspark-dataframes,Pandas,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Dataframes,我的日期范围如上所述,但我有几个日期从这个日期范围忽略。这些日期在数据框中 如何将这些日期从该日期范围中删除?任何人都可以推荐。具有不同日期的数据框如下所示 from datetime import timedelta, date def daterange(date1, date2): for n in range(int ((date2 - date1).days)+1): yield date1 + timedelta(n) start_dt = date(20

我的日期范围如上所述,但我有几个日期从这个日期范围忽略。这些日期在数据框中

如何将这些日期从该日期范围中删除?任何人都可以推荐。具有不同日期的数据框如下所示

from datetime import timedelta, date

def daterange(date1, date2):
    for n in range(int ((date2 - date1).days)+1):
        yield date1 + timedelta(n)

start_dt = date(2015, 12, 20)
end_dt = date(2016, 1, 11)
for dt in daterange(start_dt, end_dt):
    print(dt.strftime("%Y-%m-%d"))

使用
left\u anti
join:

Pardata = spark.read.parquet("/mnt/Test/data.parquet")
Pardata.createOrReplaceTempView("parfile")
ParRes = spark.sql("SELECT distinct date FROM parfile  ")

首先,从该日期范围创建一个数据框
dates\u df
。然后使用
left\u anti
join,根据键
date

dates\u df
Dataframe中过滤出
ParRes
数据帧中的日期。建议:使用普通Python构造尝试这样做。这不是Pyspark的好用例。我们在谈论几次约会?从第一年的广告到现在,我们仍然在谈论±740k个日期,这可以由标准Python有效地处理。
dates = [[dt.strftime("%Y-%m-%d")] for dt in daterange(start_dt, end_dt)]
dates_df = spark.createDataFrame(dates, ["date"])

dates_df.join(ParRes, dates_df("date") === ParRes("date"), "left_anti").show()