Skip to content

Commit ae356d1

Browse files
committed
[SPARK-13094][SQL] Add encoders for seq/array of primitives
1 parent 51b03b7 commit ae356d1

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ abstract class SQLImplicits {
3939
/** @since 1.6.0 */
4040
implicit def newProductEncoder[T <: Product : TypeTag]: Encoder[T] = ExpressionEncoder()
4141

42+
// Primitives
43+
4244
/** @since 1.6.0 */
4345
implicit def newIntEncoder: Encoder[Int] = ExpressionEncoder()
4446

@@ -56,13 +58,65 @@ abstract class SQLImplicits {
5658

5759
/** @since 1.6.0 */
5860
implicit def newShortEncoder: Encoder[Short] = ExpressionEncoder()
59-
/** @since 1.6.0 */
6061

62+
/** @since 1.6.0 */
6163
implicit def newBooleanEncoder: Encoder[Boolean] = ExpressionEncoder()
6264

6365
/** @since 1.6.0 */
6466
implicit def newStringEncoder: Encoder[String] = ExpressionEncoder()
6567

68+
// Seqs
69+
70+
/** @since 1.6.1 */
71+
implicit def newIntSeqEncoder: Encoder[Seq[Int]] = ExpressionEncoder()
72+
73+
/** @since 1.6.1 */
74+
implicit def newLongSeqEncoder: Encoder[Seq[Long]] = ExpressionEncoder()
75+
76+
/** @since 1.6.1 */
77+
implicit def newDoubleSeqEncoder: Encoder[Seq[Double]] = ExpressionEncoder()
78+
79+
/** @since 1.6.1 */
80+
implicit def newFloatSeqEncoder: Encoder[Seq[Float]] = ExpressionEncoder()
81+
82+
/** @since 1.6.1 */
83+
implicit def newByteSeqEncoder: Encoder[Seq[Byte]] = ExpressionEncoder()
84+
85+
/** @since 1.6.1 */
86+
implicit def newShortSeqEncoder: Encoder[Seq[Short]] = ExpressionEncoder()
87+
88+
/** @since 1.6.1 */
89+
implicit def newBooleanSeqEncoder: Encoder[Seq[Boolean]] = ExpressionEncoder()
90+
91+
/** @since 1.6.1 */
92+
implicit def newStringSeqEncoder: Encoder[Seq[String]] = ExpressionEncoder()
93+
94+
// Arrays
95+
96+
/** @since 1.6.1 */
97+
implicit def newIntArrayEncoder: Encoder[Array[Int]] = ExpressionEncoder()
98+
99+
/** @since 1.6.1 */
100+
implicit def newLongArrayEncoder: Encoder[Array[Long]] = ExpressionEncoder()
101+
102+
/** @since 1.6.1 */
103+
implicit def newDoubleArrayEncoder: Encoder[Array[Double]] = ExpressionEncoder()
104+
105+
/** @since 1.6.1 */
106+
implicit def newFloatArrayEncoder: Encoder[Array[Float]] = ExpressionEncoder()
107+
108+
/** @since 1.6.1 */
109+
implicit def newByteArrayEncoder: Encoder[Array[Byte]] = ExpressionEncoder()
110+
111+
/** @since 1.6.1 */
112+
implicit def newShortArrayEncoder: Encoder[Array[Short]] = ExpressionEncoder()
113+
114+
/** @since 1.6.1 */
115+
implicit def newBooleanArrayEncoder: Encoder[Array[Boolean]] = ExpressionEncoder()
116+
117+
/** @since 1.6.1 */
118+
implicit def newStringArrayEncoder: Encoder[Array[String]] = ExpressionEncoder()
119+
66120
/**
67121
* Creates a [[Dataset]] from an RDD.
68122
* @since 1.6.0

0 commit comments

Comments
 (0)