试图读取一个空的镶木地板目录,得到这个错误
无法指定拼花地板的架构。必须手动指定
我的代码
val myObject = spark.read.parquet(path).as[MyClass].filter(p => ......)
尝试处理scala尝试和定期检查空目录
myObject.rdd.isEmpty
任何想法
你可以这样试试
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
}
我有一些Spark经验,但刚开始使用Cassandra。我正在尝试进行非常简单的阅读,但性能非常差——不知道为什么。这是我正在使用的代码: 所有3个参数都是表上键的一部分: 主键(group\u id,epoch,group\u name,auto\u generated\u uuid\u field),聚类顺序为(epoch ASC,group\u name ASC,auto\u generat
正在尝试读取avro文件。 无法将运行到Avro架构的数据转换为Spark SQL StructType:[“null”,“string”] 尝试手动创建架构,但现在遇到以下情况: 通用域名格式。databricks。火花阿夫罗。SchemaConverters$CompatibleSchemaException:无法将Avro架构转换为catalyst类型,因为路径处的架构不兼容(avroTyp
我在一个Spark项目上工作,这里我有一个文件是在parquet格式,当我试图用java加载这个文件时,它给了我下面的错误。但是,当我用相同的路径在hive中加载相同的文件并编写查询select*from table_name时,它工作得很好,数据也很正常。关于这个问题,请帮助我。 java.io.ioException:无法读取页脚:java.lang.runtimeException:损坏的文
我正在运行以下scala代码: 我知道firstStruct是structType,StructFields的一个名称是“name”,但在尝试强制转换时似乎失败了。我被告知spark/hive结构与scala不同,但为了使用structType,我需要 所以我想他们应该是同一种类型的。 我看了看这里:https://github.com/apache/spark/blob/master/sql/c
我想用Apache Spark读入具有以下结构的文件。 csv太大了,不能使用熊猫,因为读取这个文件需要很长时间。有什么方法类似于 多谢!
我使用以下方法将csv文件读入Spark: df=spark.read.format(file_type).options(header='true',quote='\"',ignoreleadingwhitespace='true',inferschema='true').load(file_location) 这是正常行为还是读错了? 更新:我将标记问题作为回答,因为下面的提示是有用的。然而,