pyspark записывает неверный фрейм данных при записи нескольких строк подряд - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть функция в pyspark. Он берет список фреймов данных искры "tLst" и путь к файлу "Bpth" и записывает каждый фрейм данных искры в "Bpth" как файлы паркета. Я обнаружил, что для некоторых фреймов данных снова и снова записывается первый фрейм данных вместо правильного фрейма данных. Например, он записывает фрейм данных о налогах в пути клиентов и поставщиков. Я проверил список ввода, и это правильно. 11 и 12 записей являются покупателем и продавцом. Кто-нибудь знает, что может вызвать эту проблему и предложить, как исправить? До недавнего времени эта функция работала нормально. Кроме того, если я записываю одни и те же кадры данных по одному в блокнот jupyter, они записываются правильно.

функция:

def tblwrtr(tLst,Bpth):


    # write tables to s3 bucket

    bckt_pth1=Bpth


    #taxes
    tLst[0].write.mode("overwrite").parquet(bckt_pth1+'taxes')

    time.sleep(2)

    #discounts
    tLst[1].write.mode("overwrite").parquet(bckt_pth1+'discounts')

    time.sleep(2)

    #store
    tLst[2].write.mode("overwrite").parquet(bckt_pth1+'store')

    time.sleep(2)

    #employee
    tLst[3].write.mode("overwrite").parquet(bckt_pth1+'employee')

    time.sleep(2)

    #product
    tLst[4].write.mode("overwrite").parquet(bckt_pth1+'product')

    time.sleep(2)

    #fulfillment
    tLst[5].write.mode("overwrite").parquet(bckt_pth1+'fulfillment')

    time.sleep(2)

    #inventory
    tLst[6].write.mode("overwrite").parquet(bckt_pth1+'inventory')

    time.sleep(2)

    #invoice_payments
    tLst[7].write.mode("overwrite").parquet(bckt_pth1+'invoice_payments')

    time.sleep(2)

    #visits
    tLst[8].write.mode("overwrite").parquet(bckt_pth1+'visits')

    time.sleep(2)

    #cash_handling
    tLst[9].write.mode("overwrite").parquet(bckt_pth1+'cash_handling')

    time.sleep(2)

    #ticket
    tLst[10].write.mode("overwrite").parquet(bckt_pth1+'ticket')

    time.sleep(2)

    #customer
    tLst[11].write.mode("overwrite").parquet(bckt_pth1+'customer')

    time.sleep(2)

    #vendor
    tLst[12].write.mode("overwrite").parquet(bckt_pth1+'vendor')

    time.sleep(2)

    #payments
    tLst[13].write.mode("overwrite").parquet(bckt_pth1+'payments')

    time.sleep(2)

    #daily_units_remaining
         tLst[14].write.mode("overwrite").parquet(bckt_pth1+'daily_units_remaining')

    time.sleep(2)
...