Vitaly Gerasimov created SPARK-17806:
----------------------------------------

             Summary: Incorrect result when work with data from parquet
                 Key: SPARK-17806
                 URL: https://issues.apache.org/jira/browse/SPARK-17806
             Project: Spark
          Issue Type: Bug
    Affects Versions: 2.0.1, 2.0.0
            Reporter: Vitaly Gerasimov
            Priority: Critical


{code}
  import org.apache.spark.SparkConf
  import org.apache.spark.sql.SparkSession
  import org.apache.spark.sql.types.{StructField, StructType}
  import org.apache.spark.sql.types.DataTypes._

  val sc = SparkSession.builder().config(new 
SparkConf().setMaster("local")).getOrCreate()

  val jsonRDD = sc.sparkContext.parallelize(Seq(
    """{"a":1,"b":1,"c":1}""",
    """{"a":1,"b":1,"c":2}"""
  ))

  sc.read.schema(StructType(Seq(
    StructField("a", IntegerType),
    StructField("b", IntegerType),
    StructField("c", LongType)
  ))).json(jsonRDD).write.parquet("/tmp/test")

  val df = sc.read.load("/tmp/test")
  df.join(df, Seq("a", "b", "c"), "left_outer").show()
{code}

returns:
{code}
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  1|  1|
|  1|  1|  1|
|  1|  1|  2|
|  1|  1|  2|
+---+---+---+
{code}

Expected result:
{code}
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  1|  1|
|  1|  1|  2|
+---+---+---+
{code}

If I use this code without saving to parquet it works fine. If you change type 
of `c` column to `IntegerType` it also works fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to