Skip to content
Snippets Groups Projects
Commit 1d1a76c8 authored by Emiliano Leporati's avatar Emiliano Leporati Committed by Reynold Xin
Browse files

[SPARK-9581][SQL] Add unit test for JSON UDT

This brings #7416 up-to-date by drubbo.

Author: Emiliano Leporati <emiliano.leporati@gmail.com>
Author: Reynold Xin <rxin@databricks.com>

Closes #7917 from rxin/udt-json-test and squashes the following commits:

93e3954 [Reynold Xin] Fix test.
7035308 [Reynold Xin] Merge pull request #7416 from drubbo/master
b5bcd94 [Emiliano Leporati] removed unneded case in MyDenseVector::equals
508a399 [Emiliano Leporati] Merge remote branch 'upstream/master'
7569e42 [Emiliano Leporati] using checkAnswer
62daccd [Emiliano Leporati] added coverage for UDTs in JSON RDDs
parent c2a71f07
No related branches found
No related tags found
No related merge requests found
...@@ -125,7 +125,7 @@ private[sql] object JacksonParser { ...@@ -125,7 +125,7 @@ private[sql] object JacksonParser {
convertMap(factory, parser, kt) convertMap(factory, parser, kt)
case (_, udt: UserDefinedType[_]) => case (_, udt: UserDefinedType[_]) =>
udt.deserialize(convertField(factory, parser, udt.sqlType)) convertField(factory, parser, udt.sqlType)
} }
} }
......
...@@ -138,4 +138,24 @@ class UserDefinedTypeSuite extends QueryTest { ...@@ -138,4 +138,24 @@ class UserDefinedTypeSuite extends QueryTest {
val actual = openHashSetUDT.deserialize(openHashSetUDT.serialize(set)) val actual = openHashSetUDT.deserialize(openHashSetUDT.serialize(set))
assert(actual.iterator.toSet === set.iterator.toSet) assert(actual.iterator.toSet === set.iterator.toSet)
} }
test("UDTs with JSON") {
val data = Seq(
"{\"id\":1,\"vec\":[1.1,2.2,3.3,4.4]}",
"{\"id\":2,\"vec\":[2.25,4.5,8.75]}"
)
val schema = StructType(Seq(
StructField("id", IntegerType, false),
StructField("vec", new MyDenseVectorUDT, false)
))
val stringRDD = ctx.sparkContext.parallelize(data)
val jsonRDD = ctx.read.schema(schema).json(stringRDD)
checkAnswer(
jsonRDD,
Row(1, new MyDenseVector(Array(1.1, 2.2, 3.3, 4.4))) ::
Row(2, new MyDenseVector(Array(2.25, 4.5, 8.75))) ::
Nil
)
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment