Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-9990] [SQL] Local hash join follow-ups #8708

Closed

Conversation

andrewor14
Copy link
Contributor

  1. Hide LocalNodeIterator behind the LocalNode#asIterator method
  2. Add tests for this

@andrewor14
Copy link
Contributor Author

@zsxwing

@SparkQA
Copy link

SparkQA commented Sep 10, 2015

Test build #42294 has finished for PR 8708 at commit fed4808.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • case class ExecutorLostFailure(execId: String, isNormalExit: Boolean = false)
    • class ExecutorLossReason(val message: String) extends Serializable
    • case class ExecutorExited(exitCode: Int, isNormalExit: Boolean, reason: String)
    • case class RemoveExecutor(executorId: String, reason: ExecutorLossReason)
    • case class GetExecutorLossReason(executorId: String) extends CoarseGrainedClusterMessage
    • case class ConvertToSafeNode(conf: SQLConf, child: LocalNode) extends UnaryLocalNode(conf)
    • case class ConvertToUnsafeNode(conf: SQLConf, child: LocalNode) extends UnaryLocalNode(conf)
    • case class FilterNode(conf: SQLConf, condition: Expression, child: LocalNode)
    • case class HashJoinNode(
    • case class LimitNode(conf: SQLConf, limit: Int, child: LocalNode) extends UnaryLocalNode(conf)
    • abstract class LocalNode(conf: SQLConf) extends TreeNode[LocalNode] with Logging
    • abstract class LeafLocalNode(conf: SQLConf) extends LocalNode(conf)
    • abstract class UnaryLocalNode(conf: SQLConf) extends LocalNode(conf)
    • abstract class BinaryLocalNode(conf: SQLConf) extends LocalNode(conf)
    • case class ProjectNode(conf: SQLConf, projectList: Seq[NamedExpression], child: LocalNode)
    • case class SeqScanNode(conf: SQLConf, output: Seq[Attribute], data: Seq[InternalRow])
    • case class UnionNode(conf: SQLConf, children: Seq[LocalNode]) extends LocalNode(conf)

@@ -70,9 +70,14 @@ abstract class LocalNode(conf: SQLConf) extends TreeNode[LocalNode] with Logging
def close(): Unit

/**
* Returns the content through the [[Iterator]] interface.
*/
final def asIterator: Iterator[InternalRow] = new LocalNodeIterator(this)
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this on the critical path? If yes - it'd actually be faster to expose the LocalNodeIterator type since JIT can inline it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is called when a HashJoinNode is opened. Will it make much of a difference?

@zsxwing
Copy link
Member

zsxwing commented Sep 11, 2015

LGTM. Thanks @andrewor14

@andrewor14
Copy link
Contributor Author

Merged into master.

@asfgit asfgit closed this in c2af42b Sep 11, 2015
@andrewor14 andrewor14 deleted the local-hash-join-follow-up branch September 23, 2015 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants