Github user ravipesala commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2283#discussion_r186935553
  
    --- Diff: 
store/sdk/src/main/java/org/apache/carbondata/sdk/file/AvroCarbonWriter.java ---
    @@ -118,11 +121,131 @@ private Object avroFieldToObject(Schema.Field 
avroField, Object fieldValue) {
             break;
     
           default:
    -        throw new UnsupportedOperationException();
    +        throw new UnsupportedOperationException(
    +            "carbon not support " + type.toString() + " avro type yet");
         }
         return out;
       }
     
    +  /**
    +   * converts avro schema to carbon schema required by carbonWriter
    +   *
    +   * @param avroSchemaString json formatted avro schema as string
    +   * @return carbon sdk schema
    +   */
    +  public static org.apache.carbondata.sdk.file.Schema 
getCarbonSchemaFromAvroSchema(
    +      String avroSchemaString) {
    +    if (avroSchemaString == null) {
    +      throw new UnsupportedOperationException("avro schema string cannot 
be null");
    +    }
    +    Schema avroSchema = new Schema.Parser().parse(avroSchemaString);
    +    Field[] carbonField = new Field[avroSchema.getFields().size()];
    +    int i = 0;
    +    for (Schema.Field avroField : avroSchema.getFields()) {
    +      carbonField[i] = prepareFields(avroField.name(), avroField.schema());
    +      i++;
    +    }
    +    return new org.apache.carbondata.sdk.file.Schema(carbonField);
    +  }
    +
    +  private static Field prepareFields(String FieldName, Schema childSchema) 
{
    --- End diff --
    
    Just take avro field, no need to take 2 params


---

Reply via email to