Skip to content

Conversation

@cloud-fan
Copy link
Contributor

This PR adds a MapData as internal representation of map type in Spark SQL, and provides a default implementation with just 2 ArrayData.

After that, we have specialized getters for all internal type, so I removed generic getter in ArrayData and added specialized toArray for it.
Also did some refactor and cleanup for InternalRow and its subclasses.

@SparkQA
Copy link

SparkQA commented Jul 30, 2015

Test build #39068 has finished for PR 7799 at commit dc67221.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends SpecializedGetters with Serializable
    • trait ArrayBackendSpecializedGetters extends SpecializedGetters
    • abstract class CodeGenMutableRow extends MutableRow
    • final class SpecificRow extends $
    • case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression
    • class GenericInternalRow(protected[sql] val array: Array[Any])
    • class GenericInternalRowWithSchema(array: Array[Any], val schema: StructType)
    • class GenericMutableRow(protected[sql] val array: Array[Any])
    • abstract class ArrayData extends SpecializedGetters with Serializable
    • class GenericArrayData(protected[sql] val array: Array[Any])
    • abstract class MapData extends Serializable

@cloud-fan cloud-fan changed the title [SPARK-9480][SQL][WIP] add MapData [SPARK-9480][SQL] add MapData and cleanup internal row stuff Jul 31, 2015
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved it to the private region.

@SparkQA
Copy link

SparkQA commented Jul 31, 2015

Test build #1265 has finished for PR 7799 at commit 3e7c48a.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39298 has finished for PR 7799 at commit 08bcb40.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • class MultilayerPerceptronClassifier(override val uid: String)
    • class KinesisUtils(object):
    • class InitialPositionInStream(object):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • case class SoundEx(child: Expression) extends UnaryExpression with ExpectsInputTypes
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39306 has finished for PR 7799 at commit f482274.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • case class SoundEx(child: Expression) extends UnaryExpression with ExpectsInputTypes
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39311 has finished for PR 7799 at commit 5d13023.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • case class SoundEx(child: Expression) extends UnaryExpression with ExpectsInputTypes
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@cloud-fan
Copy link
Contributor Author

retest this please.

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #184 has finished for PR 7799 at commit 5d13023.

  • This patch fails PySpark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39322 has finished for PR 7799 at commit 5d13023.

  • This patch fails PySpark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39328 has finished for PR 7799 at commit e8f6682.

  • This patch fails PySpark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@SparkQA
Copy link

SparkQA commented Aug 1, 2015

Test build #39330 has finished for PR 7799 at commit 77d482f.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • abstract class InternalRow extends GenericSpecializedGetters with Serializable
    • trait GenericSpecializedGetters extends SpecializedGetters
    • case class GetArrayItem(child: Expression, ordinal: Expression)
    • case class GetMapValue(child: Expression, key: Expression)
    • class ArrayBasedMapData(val keyArray: ArrayData, val valueArray: ArrayData) extends MapData
    • class GenericArrayData(array: Array[Any]) extends ArrayData with GenericSpecializedGetters
    • abstract class MapData extends Serializable

@rxin
Copy link
Contributor

rxin commented Aug 1, 2015

Alright I'm going to merge this since this is a large change.

cc @davies can you take a quick look at this when you have a chance? Thanks.

@asfgit asfgit closed this in 1d59a41 Aug 1, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants