aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/types/StructType.scala3
-rw-r--r--sql/core/src/test/java/test/org/apache/spark/sql/JavaDataFrameSuite.java13
2 files changed, 15 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/StructType.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/StructType.scala
index 11fce4beaf..9778df271d 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/StructType.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/StructType.scala
@@ -328,7 +328,8 @@ object StructType extends AbstractDataType {
def apply(fields: Seq[StructField]): StructType = StructType(fields.toArray)
def apply(fields: java.util.List[StructField]): StructType = {
- StructType(fields.toArray.asInstanceOf[Array[StructField]])
+ import scala.collection.JavaConverters._
+ StructType(fields.asScala)
}
protected[sql] def fromAttributes(attributes: Seq[Attribute]): StructType =
diff --git a/sql/core/src/test/java/test/org/apache/spark/sql/JavaDataFrameSuite.java b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDataFrameSuite.java
index d191b50fa8..567bdddece 100644
--- a/sql/core/src/test/java/test/org/apache/spark/sql/JavaDataFrameSuite.java
+++ b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDataFrameSuite.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.ArrayList;
import scala.collection.JavaConverters;
import scala.collection.Seq;
@@ -209,6 +210,18 @@ public class JavaDataFrameSuite {
Assert.assertEquals(1, result.length);
}
+ @Test
+ public void testCreateStructTypeFromList(){
+ List<StructField> fields1 = new ArrayList<>();
+ fields1.add(new StructField("id", DataTypes.StringType, true, Metadata.empty()));
+ StructType schema1 = StructType$.MODULE$.apply(fields1);
+ Assert.assertEquals(0, schema1.fieldIndex("id"));
+
+ List<StructField> fields2 = Arrays.asList(new StructField("id", DataTypes.StringType, true, Metadata.empty()));
+ StructType schema2 = StructType$.MODULE$.apply(fields2);
+ Assert.assertEquals(0, schema2.fieldIndex("id"));
+ }
+
private static final Comparator<Row> crosstabRowComparator = new Comparator<Row>() {
@Override
public int compare(Row row1, Row row2) {