gpt4 book ai didi

apache-spark - 如何使用具有不受支持类型的 Spark 读取 Parquet ?

转载 作者:行者123 更新时间:2023-12-03 22:44:13 25 4
gpt4 key购买 nike

我想使用 PySpark 从包含 UINT64 的 Parquet 文件中提取数据。当前映射到 typeNotSupported() 的列在 Spark .我不需要这些列,所以我希望我可以使用以下命令使用谓词下推拉出其他列:

spark.read.parquet('path/to/dir/').select('legalcol1', 'legalcol2')

但是,我仍然遇到以下错误。
An error was encountered:
An error occurred while calling o86.parquet.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times,
most recent failure: Lost task 0.3 in stage 0.0 (TID 3, ..., executor 1):
org.apache.spark.sql.AnalysisException: Parquet type not supported: INT64 (UINT_64);

有没有办法在不抛出上述错误的情况下摄取这些数据?

最佳答案

您可以尝试将任何列类型转换为另一种列类型:

val df = spark.read.parquet('path/to/dir/')

df.select(col('legalcol1').cast('string').alias('col1'), col('legalcol2').cast('string').alias('col2'))

转换为 bigint 列类型:
df.select(col('uint64col').cast('bigint').alias('bigint_col'))

关于apache-spark - 如何使用具有不受支持类型的 Spark 读取 Parquet ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61329980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com