Hudi路径下有数据,但是用spark读不出来
原因是Hudi文件没有压缩,只能读RT,不能读RO,修改读方式:
.option(DataSourceReadOptions.QUERY_TYPE_OPT_KEY(),DataSourceReadOptions.QUERY_TYPE_INCREMENTAL_OPT_VAL()) .option(DataSourceReadOptions.BEGIN_INSTANTTIME_OPT_KEY(),"20211123215558")
此时读取数据报错:
Caused by: java.lang.ClassNotFoundException: org.apache.hudi.common.model.EventTimeAvroPayload
原因是Hudi版本不对,本地版本是0.9,同事写入Hudi时使用的是0.10,换jar包即可
二,spark读hudi时报错 org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat原因是少包,添加依赖即可:
三,spark读取Hudi报错Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.catalyst.StructFiltersorg.apache.spark spark-hive_2.12${spark.version}
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.catalyst.StructFilters at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
spark版本不对,本地用3.0.2,实际上服务器用的是3.1.2,换成3.1.2即解决问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)