Вот упрощенный код, который я использую:
Код: Выделить всё
ds = xr.open_zarr(path, consolidated=True, chunks={})
def clean(ii):
ds_bite = ds.isel(time=range(ii[0], ii[1])).to_dataframe()
schema = StructType([StructField(col, TimestampType() if col == 'time' else FloatType(), True)
for col in ds_bite.columns])
spark_df = spark.createDataFrame(ds_bite, schema)
spark_df.write.mode("append").saveAsTable('somewhere.my_tab')
delayed_results = [delayed(clean)(idx) for idx in index_start_end]
x = compute(*delayed_results, scheduler="processes")
ошибка: [CONTEXT_ONLY_VALID_ON_DRIVER] Похоже, что вы пытаются ссылаться на SparkContext из широковещательной переменной, действия или преобразования. SparkContext можно использовать только в драйвере, а не в коде, который он запускает на рабочих процессах. Для получения дополнительной информации см. SPARK-5063.
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-sparkcon