All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lucidworks.spark.util.SQLQuerySupport Maven / Gradle / Ivy

package com.lucidworks.spark.util;

import org.apache.spark.mllib.linalg.MatrixUDT;
import org.apache.spark.mllib.linalg.VectorUDT;
import org.apache.spark.sql.types.DataType;
import org.apache.spark.sql.types.DataTypes;


public class SQLQuerySupport {
  public static DataType getsqlDataType(String s) {
    if (s.equalsIgnoreCase("double")) {
      return DataTypes.DoubleType;
    }
    if (s.equalsIgnoreCase("byte")) {
      return DataTypes.ByteType;
    }
    if (s.equalsIgnoreCase("short")) {
      return DataTypes.ShortType;
    }
    if (((s.equalsIgnoreCase("int")) || (s.equalsIgnoreCase("integer")))) {
      return DataTypes.IntegerType;
    }
    if (s.equalsIgnoreCase("long")) {
      return DataTypes.LongType;
    }
    if (s.equalsIgnoreCase("String")) {
      return DataTypes.StringType;
    }
    if (s.equalsIgnoreCase("boolean")) {
      return DataTypes.BooleanType;
    }
    if (s.equalsIgnoreCase("timestamp")) {
      return DataTypes.TimestampType;
    }
    if (s.equalsIgnoreCase("date")) {
      return DataTypes.DateType;
    }
    if (s.equalsIgnoreCase("vector")) {
      return new VectorUDT();
    }
    if (s.equalsIgnoreCase("matrix")) {
      return new MatrixUDT();
    }
    if (s.contains(":") && s.split(":")[0].equalsIgnoreCase("array")) {
      return getArrayTypeRecurse(s,0);
    }
    return DataTypes.StringType;
  }

  public static DataType getArrayTypeRecurse(String s, int fromIdx) {
    if (s.contains(":") && s.split(":")[1].equalsIgnoreCase("array")) {
      fromIdx = s.indexOf(":", fromIdx);
      s = s.substring(fromIdx+1, s.length());
      return DataTypes.createArrayType(getArrayTypeRecurse(s,fromIdx));
    }
    return DataTypes.createArrayType(getsqlDataType(s.split(":")[1]));
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy