Apache spark .csv不是序列文件失败,出现异常java.io.IOException:java.io.IOException

Apache spark .csv不是序列文件失败,出现异常java.io.IOException:java.io.IOException,apache-spark,hive,databricks,Apache Spark,Hive,Databricks,使用spark以csv格式com.databricks.spark.csv在配置单元中创建带分区的外部表时,工作正常,但我无法从配置单元外壳打开在配置单元中以.csv格式创建的表 错误 代码: 如何在配置单元外壳中访问表,而表的格式为csv 显示创建表候选列表 CREATE EXTERNAL TABLE `candidatelist`( `col` array<string> COMMENT 'from deserializer') PARTITIONED BY ( `cente

使用spark以csv格式
com.databricks.spark.csv
在配置单元中创建带分区的外部表时,工作正常,但我无法从配置单元外壳打开在配置单元中以
.csv
格式创建的表

错误

代码:

如何在配置单元外壳中访问表,而表的格式为csv

显示创建表候选列表

CREATE EXTERNAL TABLE `candidatelist`(
`col` array<string> COMMENT 'from deserializer')
 PARTITIONED BY (
 `centercode` string,
 `examdate` date)
 ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ('path'='hdfs://10.19.2.190:8020/biometric/output')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT
 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
 LOCATION

 'hdfs://nnuat.iot.com:8020/apps/hive/warehouse/sify_cvs_output.db/candidatelist-__PLACEHOLDER__'TBLPROPERTIES (
 'spark.sql.create.version'='2.3.0.2.6.5.0-292',
 'spark.sql.partitionProvider'='catalog',
 'spark.sql.sources.provider'='com.databricks.spark.csv',
 'spark.sql.sources.schema.numPartCols'='2',
 'spark.sql.sources.schema.numParts'='1',
 'spark.sql.sources.schema.part.0'='{\"type\":\"struct\",\"fields\":[{\"name\":\"RollNo/SeatNo\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"LabName\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"Student_Name\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamName\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamTime\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"Center\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"CenterCode\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamDate\",\"type\":\"date\",\"nullable\":true,\"metadata\":{}}]}',
 'spark.sql.sources.schema.partCol.0'='CenterCode',
 'spark.sql.sources.schema.partCol.1'='ExamDate',
 'transient_lastDdlTime'='1535692379')
创建外部表`candidatelist`(
`列“反序列化程序中的数组注释”)
被分割(
`centercode`string,
`examdate(日期)
行格式SERDE
'org.apache.hadoop.hive.serde2.lazy.lazympleserde'
使用serdeProperty('path'='hdfs://10.19.2.190:8020/biometric/output')
以输入格式存储
'org.apache.hadoop.mapred.SequenceFileInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
位置
'hdfs://nnuat.iot.com:8020/apps/hive/warehouse/sify_cvs_output.db/candidatelist-__占位符属性(
'spark.sql.create.version'='2.3.0.2.6.5.0-292',
'spark.sql.partitionProvider'='catalog',
'spark.sql.sources.provider'='com.databricks.spark.csv',
'spark.sql.sources.schema.numPartCols'='2',
'spark.sql.sources.schema.numParts'='1',
“火花”引发的火花。sql.来源于源。方案。方案。部分部分。部分部分。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。来源。方方方方方方方。方案。来源。来源。来源。来源。来源。来源。方案。部分。部分。部分部分。部分部分部分部分部分部分。部分部分部分部分部分。0名名名名名名名男子男子男子男子:::“,,,,,,,,,,,,,,“名名名名名名名名名名名名名名名名名名名名名名名名名:::“:::::,,,,,,,,,,,,,,,“名名名名名名名名名名名,”,”,”,”,”,”,”,”若若若若若,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”以及以及以及“类型“类型类型类型”名名名名名名名名名名名名“ExamName\”,“type\”:\“字符串”是一个“字符串”,而“零零值”则是一个“字符串”是一个“字符串”是一个“字符串”,另外,一个“字符串”是一个“字符串”是一个“零零值”是一个“零零值”是一个“字符串”是一个“字符串”,另外,一个“可能”的元数据是一名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名日期\“,\“可空\”:true,\“元数据”\":{}}]}',
'spark.sql.sources.schema.partCol.0'='CenterCode',
'spark.sql.sources.schema.partCol.1'='ExamDate',
“transient_lastdldltime”=“1535692379”)

@SamsonScharfrichter,我定义了类似于
sparkDf.write.mode(SaveMode.Overwrite).option(“path”hdfs://10.19.2.190:8020/biometric/event=ABCD/).partitionBy(“LabName”).format(“com.databricks.spark.csv”).saveAsTable(“output.candidateList”)
spark问题中提供的代码您是如何有效地定义表的,在Hive Metastore cf.
show create table
?@SamsonScharfrichter中,问题更新为
show create table
,正如错误消息所预期的那样,该表已定义为使用
SequenceFile
格式,而不是
TextFile
(即CSV)。可能这是特定配置单元设置中的默认设置,Spark无法正确处理。另一起Spark惨败的案例。
 val sparkDf = spark.read.format("com.databricks.spark.csv").option("header", "true").option("nullValue", "null").schema(StructType(Array(StructField("RollNo/SeatNo", StringType, true), StructField("LabName", StringType, true)))).option("multiLine", "true").option("mode", "DROPMALFORMED").load("hdfs://10.19.2.190:8020/biometric/SheduleData_3007_2018.csv")
sparkDf.write.mode(SaveMode.Overwrite).option("path", "hdfs://10.19.2.190:8020/biometric/event=ABCD/").partitionBy("LabName").format("com.databricks.spark.csv").saveAsTable("output.candidateList")
CREATE EXTERNAL TABLE `candidatelist`(
`col` array<string> COMMENT 'from deserializer')
 PARTITIONED BY (
 `centercode` string,
 `examdate` date)
 ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ('path'='hdfs://10.19.2.190:8020/biometric/output')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT
 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
 LOCATION

 'hdfs://nnuat.iot.com:8020/apps/hive/warehouse/sify_cvs_output.db/candidatelist-__PLACEHOLDER__'TBLPROPERTIES (
 'spark.sql.create.version'='2.3.0.2.6.5.0-292',
 'spark.sql.partitionProvider'='catalog',
 'spark.sql.sources.provider'='com.databricks.spark.csv',
 'spark.sql.sources.schema.numPartCols'='2',
 'spark.sql.sources.schema.numParts'='1',
 'spark.sql.sources.schema.part.0'='{\"type\":\"struct\",\"fields\":[{\"name\":\"RollNo/SeatNo\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"LabName\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"Student_Name\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamName\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamTime\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"Center\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"CenterCode\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"ExamDate\",\"type\":\"date\",\"nullable\":true,\"metadata\":{}}]}',
 'spark.sql.sources.schema.partCol.0'='CenterCode',
 'spark.sql.sources.schema.partCol.1'='ExamDate',
 'transient_lastDdlTime'='1535692379')