Это тот же вопрос, что и здесь , но принятый ответ у меня не работает.
Попытка : я пытаюсь сохранить кадр данных dask в паркете отформатировать и прочитать его с искрой.
Проблема : столбец метки времени не может быть интерпретирован pyspark
что я сделал :
Я пытаюсь сохранить Dask dataframe в hfds как паркет, используя
import dask.dataframe as dd
dd.to_parquet(ddf_param_logs, 'hdfs:///user/<myuser>/<filename>', engine='pyarrow', flavor='spark')
Затем я читаю файл с pyspark:
sdf = spark.read.parquet('hdfs:///user/<myuser>/<filename>')
sdf.show()
>>> org.apache.spark.sql.execution.QueryExecutionException: Parquet column cannot be converted in file hdfs://nameservice1/user/<user>/<filename>/part.0.parquet. Column: [utc_timestamp], Expected: bigint, Found: INT96
, но если я сохраняю dataframe с
dd.to_parquet(ddf_param_logs, 'hdfs:///user/<myuser>/<filename>', engine='pyarrow', use_deprecated_int96_timestamps=True)
столбец ut c timestamp содержит информацию о метке времени в формате unix (1578642290403000)
, это моя среда:
dask==2.9.0
dask-core==2.9.0
pandas==0.23.4
pyarrow==0.15.1
pyspark==2.4.3