[jira] [Updated] (CARBONDATA-1477) wrong values shown when fetching date type values in hive

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (CARBONDATA-1477) wrong values shown when fetching date type values in hive

Akash R Nilugal (Jira)

     [ https://issues.apache.org/jira/browse/CARBONDATA-1477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

anubhav tarar updated CARBONDATA-1477:
--------------------------------------
    Description:
{code}

package org.apache.carbondata.hiveexample

import java.io.File
import java.sql.{DriverManager, ResultSet, Statement}

import org.apache.spark.sql.SparkSession

import org.apache.carbondata.common.logging.LogServiceFactory
import org.apache.carbondata.hive.server.HiveEmbeddedServer2

// scalastyle:off println
object HiveExample {

  private val driverName: String = "org.apache.hive.jdbc.HiveDriver"

  def main(args: Array[String]) {
    val rootPath = new File(this.getClass.getResource("/").getPath
                            + "../../../..").getCanonicalPath
    val store = s"$rootPath/integration/hive/target/store"
    val warehouse = s"$rootPath/integration/hive/target/warehouse"
    val metaStore_Db = s"$rootPath/integration/hive/target/carbon_metaStore_db"
    val logger = LogServiceFactory.getLogService(this.getClass.getCanonicalName)
    var resultId = ""
    var resultName = ""
    var resultSalary = ""


    import org.apache.spark.sql.CarbonSession._

    val carbonSession = SparkSession
      .builder()
      .master("local")
      .appName("HiveExample")
      .config("carbonSession.sql.warehouse.dir", warehouse).enableHiveSupport()
      .getOrCreateCarbonSession(
        store, metaStore_Db)

    carbonSession.sql("DROP TABLE IF EXISTS HIVE_CARBON_EXAMPLE ")
    carbonSession
      .sql(
        """CREATE TABLE IF NOT EXISTS HIVE_CARBON_EXAMPLE (ID int,NAME string,SALARY double,JOININGDATE date) STORED BY
          |'CARBONDATA' """
          .stripMargin)

    carbonSession.sql(
      s"""

           LOAD DATA LOCAL INPATH '$rootPath/integration/hive/src/main/resources/data.csv' INTO
           TABLE
         HIVE_CARBON_EXAMPLE
           """)
    carbonSession.sql("SELECT * FROM HIVE_CARBON_EXAMPLE").show()

    carbonSession.stop()

    try {
      Class.forName(driverName)
    }
    catch {
      case classNotFoundException: ClassNotFoundException =>
        classNotFoundException.printStackTrace()
    }

    val hiveEmbeddedServer2 = new HiveEmbeddedServer2()
    hiveEmbeddedServer2.start()
    val port = hiveEmbeddedServer2.getFreePort
    val connection = DriverManager.getConnection(s"jdbc:hive2://localhost:$port/default", "", "")
    val statement: Statement = connection.createStatement

    logger.info(s"============HIVE CLI IS STARTED ON PORT $port ==============")

    statement.execute("CREATE TABLE IF NOT EXISTS " + "HIVE_CARBON_EXAMPLE " +
                      " (ID int, NAME string,SALARY double,JOININGDATE date)")
    statement
      .execute(
        "ALTER TABLE HIVE_CARBON_EXAMPLE SET FILEFORMAT INPUTFORMAT \"org.apache.carbondata." +
        "hive.MapredCarbonInputFormat\"OUTPUTFORMAT \"org.apache.carbondata.hive." +
        "MapredCarbonOutputFormat\"SERDE \"org.apache.carbondata.hive." +
        "CarbonHiveSerDe\" ")

    statement
      .execute(
        "ALTER TABLE HIVE_CARBON_EXAMPLE SET LOCATION " +
        s"'file:///$store/default/hive_carbon_example' ")

    val sql = "SELECT * FROM HIVE_CARBON_EXAMPLE"

    val resultSet: ResultSet = statement.executeQuery(sql)

    var rowsFetched = 0

    while (resultSet.next) {
      println("*********"+resultSet.getString("JOININGDATE"))
    }
    println(s"******Total Number Of Rows Fetched ****** $rowsFetched")

    logger.info("Fetching the Individual Columns ")


    hiveEmbeddedServer2.stop()
    System.exit(0)
  }

}


  was:
{code}
 import org.apache.spark.sql.CarbonSession._

    val carbonSession = SparkSession
      .builder()
      .master("local")
      .appName("HiveExample")
      .config("carbonSession.sql.warehouse.dir", warehouse).enableHiveSupport()
      .getOrCreateCarbonSession(
        store)

    carbonSession.sql("""DROP TABLE IF EXISTS HIVE_CARBON_EXAMPLE""".stripMargin)

    carbonSession
      .sql(
        """CREATE TABLE HIVE_CARBON_EXAMPLE (ID int,NAME string,SALARY double,JOININGDATE date) STORED BY
          |'CARBONDATA' """
          .stripMargin)

    carbonSession.sql(
      s"""

           LOAD DATA LOCAL INPATH '$rootPath/integration/hive/src/main/resources/data.csv' INTO
           TABLE
         HIVE_CARBON_EXAMPLE
           """)
    carbonSession.sql("SELECT * FROM HIVE_CARBON_EXAMPLE").show()

    carbonSession.stop()

    try {
      Class.forName(driverName)
    }
    catch {
      case classNotFoundException: ClassNotFoundException =>
        classNotFoundException.printStackTrace()
    }


    HiveEmbeddedServer.start()
    val port = HiveEmbeddedServer.getFreePort
    val connection = DriverManager.getConnection(s"jdbc:hive2://localhost:8000/default", "", "")
    val statement: Statement = connection.createStatement

    logger.info(s"============HIVE CLI IS STARTED ON PORT $port ==============")

    statement.execute("CREATE TABLE IF NOT EXISTS " + "HIVE_CARBON_EXAMPLE " +
                      " (ID int, NAME string,SALARY double,JOININGDATE date)")
    statement
      .execute(
        "ALTER TABLE HIVE_CARBON_EXAMPLE SET FILEFORMAT INPUTFORMAT \"org.apache.carbondata." +
        "hive.MapredCarbonInputFormat\"OUTPUTFORMAT \"org.apache.carbondata.hive." +
        "MapredCarbonOutputFormat\"SERDE \"org.apache.carbondata.hive." +
        "CarbonHiveSerDe\" ")

    statement
      .execute(
        "ALTER TABLE HIVE_CARBON_EXAMPLE SET LOCATION " +
        s"'file:///$store/default/hive_carbon_example' ")

    val sql = "SELECT * FROM HIVE_CARBON_EXAMPLE"

    val resultSet: ResultSet = statement.executeQuery(sql)

    var rowsFetched = 0

    while (resultSet.next) {
     println("*********"+resultSet.getString("JOININGDATE"))
    }
    println(s"******Total Number Of Rows Fetched ****** $rowsFetched")

    logger.info("Fetching the Individual Columns ")



    HiveEmbeddedServer.stop()

{code}
actual result
*********null
*********1970-01-01

values in my csv are
ID,NAME,SALARY,JOININGDATE
1,'liang',200000,2016-03-14
2,'anubhav',20000,2019/03/17




> wrong values shown when fetching date type values in hive
> ---------------------------------------------------------
>
>                 Key: CARBONDATA-1477
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-1477
>             Project: CarbonData
>          Issue Type: Bug
>          Components: hive-integration
>    Affects Versions: 1.2.0
>         Environment: hive1.2.1,spark2.1
>            Reporter: anubhav tarar
>            Assignee: anubhav tarar
>            Priority: Trivial
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> {code}
> package org.apache.carbondata.hiveexample
> import java.io.File
> import java.sql.{DriverManager, ResultSet, Statement}
> import org.apache.spark.sql.SparkSession
> import org.apache.carbondata.common.logging.LogServiceFactory
> import org.apache.carbondata.hive.server.HiveEmbeddedServer2
> // scalastyle:off println
> object HiveExample {
>   private val driverName: String = "org.apache.hive.jdbc.HiveDriver"
>   def main(args: Array[String]) {
>     val rootPath = new File(this.getClass.getResource("/").getPath
>                             + "../../../..").getCanonicalPath
>     val store = s"$rootPath/integration/hive/target/store"
>     val warehouse = s"$rootPath/integration/hive/target/warehouse"
>     val metaStore_Db = s"$rootPath/integration/hive/target/carbon_metaStore_db"
>     val logger = LogServiceFactory.getLogService(this.getClass.getCanonicalName)
>     var resultId = ""
>     var resultName = ""
>     var resultSalary = ""
>     import org.apache.spark.sql.CarbonSession._
>     val carbonSession = SparkSession
>       .builder()
>       .master("local")
>       .appName("HiveExample")
>       .config("carbonSession.sql.warehouse.dir", warehouse).enableHiveSupport()
>       .getOrCreateCarbonSession(
>         store, metaStore_Db)
>     carbonSession.sql("DROP TABLE IF EXISTS HIVE_CARBON_EXAMPLE ")
>     carbonSession
>       .sql(
>         """CREATE TABLE IF NOT EXISTS HIVE_CARBON_EXAMPLE (ID int,NAME string,SALARY double,JOININGDATE date) STORED BY
>           |'CARBONDATA' """
>           .stripMargin)
>     carbonSession.sql(
>       s"""
>            LOAD DATA LOCAL INPATH '$rootPath/integration/hive/src/main/resources/data.csv' INTO
>            TABLE
>          HIVE_CARBON_EXAMPLE
>            """)
>     carbonSession.sql("SELECT * FROM HIVE_CARBON_EXAMPLE").show()
>     carbonSession.stop()
>     try {
>       Class.forName(driverName)
>     }
>     catch {
>       case classNotFoundException: ClassNotFoundException =>
>         classNotFoundException.printStackTrace()
>     }
>     val hiveEmbeddedServer2 = new HiveEmbeddedServer2()
>     hiveEmbeddedServer2.start()
>     val port = hiveEmbeddedServer2.getFreePort
>     val connection = DriverManager.getConnection(s"jdbc:hive2://localhost:$port/default", "", "")
>     val statement: Statement = connection.createStatement
>     logger.info(s"============HIVE CLI IS STARTED ON PORT $port ==============")
>     statement.execute("CREATE TABLE IF NOT EXISTS " + "HIVE_CARBON_EXAMPLE " +
>                       " (ID int, NAME string,SALARY double,JOININGDATE date)")
>     statement
>       .execute(
>         "ALTER TABLE HIVE_CARBON_EXAMPLE SET FILEFORMAT INPUTFORMAT \"org.apache.carbondata." +
>         "hive.MapredCarbonInputFormat\"OUTPUTFORMAT \"org.apache.carbondata.hive." +
>         "MapredCarbonOutputFormat\"SERDE \"org.apache.carbondata.hive." +
>         "CarbonHiveSerDe\" ")
>     statement
>       .execute(
>         "ALTER TABLE HIVE_CARBON_EXAMPLE SET LOCATION " +
>         s"'file:///$store/default/hive_carbon_example' ")
>     val sql = "SELECT * FROM HIVE_CARBON_EXAMPLE"
>     val resultSet: ResultSet = statement.executeQuery(sql)
>     var rowsFetched = 0
>     while (resultSet.next) {
>       println("*********"+resultSet.getString("JOININGDATE"))
>     }
>     println(s"******Total Number Of Rows Fetched ****** $rowsFetched")
>     logger.info("Fetching the Individual Columns ")
>     hiveEmbeddedServer2.stop()
>     System.exit(0)
>   }
> }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)