试图读取空的Parquet目录,出现此错误无法指定Parquet地板的架构。必须手动指定我的代码
val myObject = spark.read.parquet(path).as[MyClass].filter(p => ......)
尝试处理scala'try'和定期检查空目录
myObject.rdd.isEmpty
有什么想法吗
lf3rwulv1#
你可以这样试试
var myObject: DataFrame = null try { myObject = spark.read.parquet(path).as[MyClass].filter(p => ......) catch { case ae: AnalysisException => //Do your logic here }
在这个场景中,“myobject.rdd.isempty”不起作用,因为它需要加载目录并推断模式,然后检查是否为空。要让它工作,你可以这样做:
val customSchema = StructType(Array( StructField("id", IntegerType, true), StructField("name", StringType, true), StructField("email", StringType, true)) ) val myObject = spark.read.schema(customSchema).parquet(path).as[MyClass].filter(p => ......) if(myObject.rdd.isEmpty) { //Do something } else { //Do something else }
1条答案
按热度按时间lf3rwulv1#
你可以这样试试
在这个场景中,“myobject.rdd.isempty”不起作用,因为它需要加载目录并推断模式,然后检查是否为空。
要让它工作,你可以这样做: