Я успешно создаю один кадр / строку и записываю в s3 в формате паркета, используя следующую команду:
data_for_frame = [{"Category": 'Category A', "ID": 1, "Value": Decimal(12.40)},
{"Category": 'Category B', "ID": 2, "Value": Decimal(30.10)},
{"Category": 'Category C', "ID": 3, "Value": Decimal(100.01)}
]
dynamic_frame = sparkSession.createDataFrame(data_frame, schema_frame)
frame = sparkSession.createDataFrame(data_frame, schema_frame)
frame.write.parquet(s3_path)
Как можно написать несколько строк одновременно, чтобы минимизировать запись каждый раз? Означает, что я создаю несколько строк и как-то передаю один большой кадр для записи в s3 за одну попытку. Я попытался поместить несколько кадров в список, а затем передал его в frame.write
, но это не сработало с ошибкой AttributeError: 'list' object has no attribute 'write'
Также, если я пытаюсь записать в s3 в al oop с отдельными кадрами, это выдает ошибку с
AnalysisException: 'path s3://stackoverflow-test-bucket/testing/default_bucket/year=2020/month=4/day=4 already exists.;'