You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@carbondata.apache.org by "Praveen M P (JIRA)" <ji...@apache.org> on 2018/05/09 12:00:00 UTC

[jira] [Created] (CARBONDATA-2460) Infer Schema (create External Table) failed for double data type Array or Struct written by SDK

Praveen M P created CARBONDATA-2460:
---------------------------------------

             Summary:  Infer Schema (create External Table) failed for double data type Array or Struct written by SDK
                 Key: CARBONDATA-2460
                 URL: https://issues.apache.org/jira/browse/CARBONDATA-2460
             Project: CarbonData
          Issue Type: Bug
            Reporter: Praveen M P


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_double",
 | "type": "double"
 | }
 | ]
 | }
 | },
 |
 | {
 | "name":"salary_double",
 | "type":
 | {
 | "type":"array",
 | "items": "double"
 |
 | }
 | }
 |
 | ]
 | }
 """.stripMargin

 var json = """{
 | "id": 101,
 | "name": "babu",
 | "age": 12.1,
 | "course_details": {
 | "course_double": 11.23
 | },
 | "salary_double": [
 | 12.12,
 | 25.12,
 | 65
 | ]
 |}""".stripMargin


 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](11)
 fields(0) = new Field("id", DataTypes.INT)
 fields(1) = new Field("name", DataTypes.STRING)

 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_double", DataTypes.DOUBLE))

 fields(3) = new Field("course_details", "struct", fld)

 val arr1 = new java.util.ArrayList[StructField]
 arr1.add(new StructField("salary_double",DataTypes.DOUBLE))
 fields(3) = new Field("salary_double", "array",arr1)

 try {
 val writer = CarbonWriter.builder.withSchema(new Schema(fields)).sortBy(Array("name","id"))
 .outputPath("D:/Hadoop/carbon_1_3/sdk/carbon_c8/").isTransactionalTable(false).buildWriterForAvroInput
 writer.write(record)

 writer.close()
 }
 catch {
 case e: Exception => {
 e.printStackTrace()
 }
 }



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)