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)

Reply via email to