Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Python 与Dask/Pandas和Pypark的拼花地板兼容性_Python_Apache Spark_Dask_Parquet_Pyarrow - Fatal编程技术网

Python 与Dask/Pandas和Pypark的拼花地板兼容性

Python 与Dask/Pandas和Pypark的拼花地板兼容性,python,apache-spark,dask,parquet,pyarrow,Python,Apache Spark,Dask,Parquet,Pyarrow,这是与相同的问题,但公认的答案不适用于我 尝试: 我尝试以拼花格式保存dask数据帧,并使用spark读取它 问题:pyspark无法解释时间戳列 我所做的: 我试着在hfds中将Dask数据帧保存为使用 import dask.dataframe as dd dd.to_parquet(ddf_param_logs, 'hdfs:///user/<myuser>/<filename>', engine='pyarrow', flavor='spark') INT96类

这是与相同的问题,但公认的答案不适用于我

尝试: 我尝试以拼花格式保存dask数据帧,并使用spark读取它

问题:pyspark无法解释时间戳列

我所做的:

我试着在hfds中将Dask数据帧保存为使用

import dask.dataframe as dd
dd.to_parquet(ddf_param_logs, 'hdfs:///user/<myuser>/<filename>', engine='pyarrow', flavor='spark')

INT96类型是为了与spark兼容而明确加入的,spark选择了不使用拼花地板规范定义的标准时间类型。不幸的是,他们似乎又改变了,不再使用自己以前的标准,而不是拼花地板

如果您能在这里找到spark想要的类型,并将问题发布到dask回购,我们将不胜感激。您可能希望从包含时间列的spark输出数据,并查看其最终的格式


您是否也尝试过fastparquet后端?

为了与spark兼容,明确加入了INT96类型,spark选择了不使用parquet规范定义的标准时间类型。不幸的是,他们似乎再次改变,不再使用自己以前的标准,而不是parquet

如果您能在这里找到spark想要的类型,并将问题发布到dask回购,我们将不胜感激。您可能希望从包含时间列的spark输出数据,并查看其最终的格式


您也尝试过fastparquet后端吗?

使用fastparquet成功了!特别感谢!这是片段:dd.to_parquetddf_param_logs,engine='fastparquet',times='int96Edit,可能是hadoop/m-r/hive首先选择了使用int96,而不是使用sparkusing fastparquet!特别感谢!这是一段代码:dd.to_parquetddf_param_logs,engine='fastparquet',times='int96Edit,可能是hadoop/m-r/hive首先选择使用int96,而不是spark
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
dd.to_parquet(ddf_param_logs, 'hdfs:///user/<myuser>/<filename>', engine='pyarrow', use_deprecated_int96_timestamps=True)
dask==2.9.0
dask-core==2.9.0
pandas==0.23.4
pyarrow==0.15.1
pyspark==2.4.3