Rahul Kumar created CARBONDATA-2490:
--------------------------------------- Summary: Even Bad records action is FORCE , SDK writer failed with ClassCastException Key: CARBONDATA-2490 URL: https://issues.apache.org/jira/browse/CARBONDATA-2490 Project: CarbonData Issue Type: Bug Reporter: Rahul Kumar Assignee: Rahul Kumar Test Step : def myStruct(): Unit = { val myaSchema= """ { | "namespace": "com.apache.schema", | "type": "record", | "name": "StudentActivity", | "fields": [ | { | "name": "id", | "type": "int" | }, | { | "name": "name", | "type": "string" | }, | { | "name": "age", | "type": "double" | }, | | { | "name": "course_details", | "type": { | "name": "Activity", | "type": "record", | "fields": [ | { | "name": "course_id", | "type": "int" | } | ] | } | }, | { | "name":"teachers", | "type": | { | "type":"array", | "items": "string" | | } | }, | { | "name":"salary", | "type": | { | "type":"array", | "items": "double" | | } | } | | ] | } """.stripMargin var json = "{\"id\": 101,\"name\": \"babu\",\"age\": 12.1,\"course_details\": " + "\{\"course_id\": 11},\"teachers\": [\"PK\", \"DK\", \"MK\", \"SK\"],\"salary\": " + "[12.12,25.12,65]}" val nn = new org.apache.avro.Schema.Parser().parse(myaSchema) val converter = new JsonAvroConverter var record = converter .convertToGenericDataRecord(json.getBytes(CharEncoding.UTF_8), nn) val fields = new Array[Field](6) fields(0) = new Field("id", DataTypes.INT) fields(1) = new Field("name", DataTypes.INT) fields(2) = new Field("age", DataTypes.DOUBLE) // fields[1] = new Field("age", DataTypes.INT); val fld = new java.util.ArrayList[StructField] fld.add(new StructField("course_id", DataTypes.INT)) fields(3) = new Field("course_details", "struct", fld) val arr = new java.util.ArrayList[StructField] arr.add(new StructField("teachers",DataTypes.STRING)) fields(4) = new Field("teachers", "array",arr) val arr1 = new java.util.ArrayList[StructField] arr1.add(new StructField("salary",DataTypes.DOUBLE)) fields(5) = new Field("salary", "array",arr) import scala.collection.JavaConverters._ var options = Map("bad_records_action" -> "FORCE").asJava try { val writer = CarbonWriter.builder.withSchema(new Schema(fields)).sortBy(Array("name","id")) .outputPath("D:/Hadoop/carbon_1_3/sdk/carbon_c1/").isTransactionalTable(false).withLoadOptions(options).buildWriterForAvroInput for(i <-0 to 100){ val json1 = "{\"id\": 101,\"name\": \"babu\",\"age\": 12.1,\"course_details\": " + "\{\"course_id\": 11},\"teachers\": [\"PK\", \"DK\", \"MK\", \"SK\"],\"salary\": " + "[12.12,25.12,"+i+"]}"; val record1 = converter .convertToGenericDataRecord(json1.getBytes(CharEncoding.UTF_8), nn) writer.write(record1) } json = "{\"id\": 501,\"name\": \"babu\",\"age\": 12.1,\"course_details\": " + "\{\"course_id\": 11},\"teachers\": [\"PK\", \"DK\", \"MK\", \"SK\",\"\",\"null\"],\"salary\": " + "[12.12,25.12]}"; record = converter .convertToGenericDataRecord(json.getBytes(CharEncoding.UTF_8), nn) writer.write(record) writer.close() } catch { case e: Exception => { e.printStackTrace() } } } -- This message was sent by Atlassian JIRA (v7.6.3#76005) |
Free forum by Nabble | Edit this page |