Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: spark-branch
    • Component/s: spark
    • Labels:
      None

      Description

      in current code, there are following class in mapreduce and tez package.
      mapreduce:
      MRCompiler
      MROperPlan MROpPlanVisitor
      MapReduceOper

      tez:
      TezCompiler
      TezOperPlan TezOpPlanVisitor
      TezOperator

      Following class needs to be added in spark package:
      SparkCompiler
      SparkOperPlan SparkOpPlanVisitor
      SparkOperator

      Current code need to be refactored because of above adding classes. Some unit tests like TestStoreInstances fail because of it.

      following are the error of unit test TestStoreInstances:
      Error Message

      num jobs expected:<1> but was:<0>
      Stacktrace

      junit.framework.AssertionFailedError: num jobs expected:<1> but was:<0>
      at org.apache.pig.test.TestStoreInstances.testBackendStoreCommunication(TestStoreInstances.java:122)

      1. Pig-spark #76 [Jenkins .png
        261 kB
        liyunzhang
      2. PIG-4374_8.patch.jenkins.png
        252 kB
        liyunzhang
      3. PIG-4374_7.patch
        117 kB
        liyunzhang
      4. PIG-4374_6.patch
        76 kB
        liyunzhang
      5. PIG-4374_6_patch_jekins.png
        371 kB
        liyunzhang
      6. PIG-4374_4.patch_Jenkins_result.png
        364 kB
        liyunzhang
      7. PIG-4374_4.patch
        92 kB
        liyunzhang
      8. PIG-4374_3.patch.1
        76 kB
        liyunzhang
      9. PIG-4374_2.patch.1
        78 kB
        liyunzhang
      10. PIG-4374_1.patch
        75 kB
        liyunzhang
      11. jenkins_PIG-4374_1_patch.png.png
        474 kB
        liyunzhang
      12. How to change a physical plan to a spark plan.docx
        22 kB
        liyunzhang

        Issue Links

          Activity

          Hide
          kellyzly liyunzhang added a comment -

          PIG-43741.patch is the initial patch. jenkinsPIG-4374_1_patch.png.png is my jenkins result. Compared jenkins_PIG-4374_1_patch.png.png with Pig-spark #76 [Jenkins .png, 66 new failures are added.

          Show
          kellyzly liyunzhang added a comment - PIG-4374 1.patch is the initial patch. jenkins PIG-4374 _1_patch.png.png is my jenkins result. Compared jenkins_ PIG-4374 _1_patch.png.png with Pig-spark #76 [Jenkins .png, 66 new failures are added.
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          liyunzhang, could you be please create a review board for this patch ?

          Show
          mohitsabharwal Mohit Sabharwal added a comment - liyunzhang , could you be please create a review board for this patch ?
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          liyunzhang, I'm not sure we need these classes if the purpose is to fix the tests. These look like versions of MROperPlan, MRCompiler, etc, without MR specific attributes.

          I think unit tests are failing because JobGraph is not correctly populated in spark's implementation of PigStats. We can correctly populate the JobGraph without adding SparkCompiler, SparkOperPlan, etc. JobGraph needs as many JobStats as there are Spark jobs in the pig script. For example: see PIG-4393 for the approach.

          What do you think ?

          Show
          mohitsabharwal Mohit Sabharwal added a comment - liyunzhang , I'm not sure we need these classes if the purpose is to fix the tests. These look like versions of MROperPlan, MRCompiler, etc, without MR specific attributes. I think unit tests are failing because JobGraph is not correctly populated in spark's implementation of PigStats. We can correctly populate the JobGraph without adding SparkCompiler, SparkOperPlan, etc. JobGraph needs as many JobStats as there are Spark jobs in the pig script. For example: see PIG-4393 for the approach. What do you think ?
          Hide
          kellyzly liyunzhang added a comment -

          Mohit Sabharwal,
          Following code is org.apache.pig.tools.pigstats.mapreduce.SimplePigStats.JobGraphBuilder which is similar with your SparkPigStats. I think you need SparkPlan in SparkPigStats.

          private class JobGraphBuilder extends MROpPlanVisitor {
           
                  public JobGraphBuilder(MROperPlan plan) {
                      super(plan, new DependencyOrderWalker<MapReduceOper, MROperPlan>(
                              plan));
                      jobPlan = new JobGraph();
                      mroJobMap = new HashMap<MapReduceOper, MRJobStats>();
                  }
           
                  @Override
                  public void visitMROp(MapReduceOper mr) throws VisitorException {
                      MRJobStats js = new MRJobStats(
                              mr.getOperatorKey().toString(), jobPlan);
                      jobPlan.add(js);
                      List<MapReduceOper> preds = getPlan().getPredecessors(mr);
                      if (preds != null) {
                          for (MapReduceOper pred : preds) {
                              MRJobStats jpred = mroJobMap.get(pred);
                              if (!jobPlan.isConnected(jpred, js)) {
                                  jobPlan.connect(jpred, js);
                              }
                          }
                      }
                      mroJobMap.put(mr, js);
                  }
              }
          

          We have other reasons for needing SparkPlan besides passing unit test: 1. SparkLauncher now changes a physical plan to MRPlan to extract some info to physicalOper. If remove this, more unit tests fail(see PIG-4364), so my patch is to change a physical plan to SparkPlan.

          Show
          kellyzly liyunzhang added a comment - Mohit Sabharwal , Following code is org.apache.pig.tools.pigstats.mapreduce.SimplePigStats.JobGraphBuilder which is similar with your SparkPigStats. I think you need SparkPlan in SparkPigStats. private class JobGraphBuilder extends MROpPlanVisitor { public JobGraphBuilder(MROperPlan plan) { super (plan, new DependencyOrderWalker<MapReduceOper, MROperPlan>( plan)); jobPlan = new JobGraph(); mroJobMap = new HashMap<MapReduceOper, MRJobStats>(); } @Override public void visitMROp(MapReduceOper mr) throws VisitorException { MRJobStats js = new MRJobStats( mr.getOperatorKey().toString(), jobPlan); jobPlan.add(js); List<MapReduceOper> preds = getPlan().getPredecessors(mr); if (preds != null ) { for (MapReduceOper pred : preds) { MRJobStats jpred = mroJobMap.get(pred); if (!jobPlan.isConnected(jpred, js)) { jobPlan.connect(jpred, js); } } } mroJobMap.put(mr, js); } } We have other reasons for needing SparkPlan besides passing unit test: 1. SparkLauncher now changes a physical plan to MRPlan to extract some info to physicalOper. If remove this, more unit tests fail(see PIG-4364 ), so my patch is to change a physical plan to SparkPlan.
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          Thanks, liyunzhang. Is PIG-4364 the only reason we are adding these classes ?

          I am concerned that there is lot of code duplication and am trying to understand the benefit and/or the root cause.

          thanks!

          Show
          mohitsabharwal Mohit Sabharwal added a comment - Thanks, liyunzhang . Is PIG-4364 the only reason we are adding these classes ? I am concerned that there is lot of code duplication and am trying to understand the benefit and/or the root cause. thanks!
          Hide
          kellyzly liyunzhang added a comment -

          After running in my jekins, compared with https://builds.apache.org/job/Pig-spark/82/#showFailuresLink(129 failures). See attached pig_spark#27_Jenkins
          15 added unit test failures:
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup
          org.apache.pig.test.TestEvalPipeline.testCogroupWithInputFromGroup
          org.apache.pig.test.TestEvalPipeline2.testOrderByLimitJoin
          org.apache.pig.test.TestEvalPipeline2.testDereferenceInnerPlan
          org.apache.pig.test.TestEvalPipeline2.testUnionOnSchemaUidGeneration
          org.apache.pig.test.TestEvalPipeline2.testForEachSameOriginColumn1
          org.apache.pig.test.TestImplicitSplit.testImplicitSplitInCoGroup
          org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup
          org.apache.pig.test.TestKeyTypeDiscoveryVisitor.testNullJoin
          org.apache.pig.test.TestMergeJoin.testExpressionFail
          org.apache.pig.test.TestNewPlanImplicitSplit.testImplicitSplitInCoGroup
          org.apache.pig.test.TestScriptLanguage.NegativeTest2
          org.apache.pig.test.TestScriptLanguage.NegativeTest3
          org.apache.pig.test.TestScriptLanguage.NegativeTest
          org.apache.pig.test.TestStoreOld.testStoreWithMultipleMRJobs

          4 deleted unit tests :
          org.apache.pig.test.TestStoreInstances.testBackendStoreCommunication
          org.apache.pig.test.TestToolsPigServer.testToolsPigServer
          org.apache.pig.test.TestToolsPigServer.testToolsPigServerRegister
          org.apache.pig.backend.hadoop.accumulo.TestAccumuloPigCluster.test

          Currently 15 adding unit test failures are caused by the imcomplete code for join situation(SparkCompile#visitFRJoin SparkCompile#visitLimit SparkCompile#visitCollectedGroup is marked “TODO”). Need more time to fix all.

          Show
          kellyzly liyunzhang added a comment - After running in my jekins, compared with https://builds.apache.org/job/Pig-spark/82/#showFailuresLink(129 failures). See attached pig_spark#27_Jenkins 15 added unit test failures: org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup org.apache.pig.test.TestEvalPipeline.testCogroupWithInputFromGroup org.apache.pig.test.TestEvalPipeline2.testOrderByLimitJoin org.apache.pig.test.TestEvalPipeline2.testDereferenceInnerPlan org.apache.pig.test.TestEvalPipeline2.testUnionOnSchemaUidGeneration org.apache.pig.test.TestEvalPipeline2.testForEachSameOriginColumn1 org.apache.pig.test.TestImplicitSplit.testImplicitSplitInCoGroup org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup org.apache.pig.test.TestKeyTypeDiscoveryVisitor.testNullJoin org.apache.pig.test.TestMergeJoin.testExpressionFail org.apache.pig.test.TestNewPlanImplicitSplit.testImplicitSplitInCoGroup org.apache.pig.test.TestScriptLanguage.NegativeTest2 org.apache.pig.test.TestScriptLanguage.NegativeTest3 org.apache.pig.test.TestScriptLanguage.NegativeTest org.apache.pig.test.TestStoreOld.testStoreWithMultipleMRJobs 4 deleted unit tests : org.apache.pig.test.TestStoreInstances.testBackendStoreCommunication org.apache.pig.test.TestToolsPigServer.testToolsPigServer org.apache.pig.test.TestToolsPigServer.testToolsPigServerRegister org.apache.pig.backend.hadoop.accumulo.TestAccumuloPigCluster.test Currently 15 adding unit test failures are caused by the imcomplete code for join situation(SparkCompile#visitFRJoin SparkCompile#visitLimit SparkCompile#visitCollectedGroup is marked “TODO”). Need more time to fix all.
          Hide
          kellyzly liyunzhang added a comment -

          in PIG-4374_3.patch.1,
          1. remove duplicated code with PIG-4393.
          2. after testing in my jenkins,
          1 adding unit test failures
          org.apache.pig.test.TestMergeJoin.testExpressionFail

          Show
          kellyzly liyunzhang added a comment - in PIG-4374 _3.patch.1, 1. remove duplicated code with PIG-4393 . 2. after testing in my jenkins, 1 adding unit test failures org.apache.pig.test.TestMergeJoin.testExpressionFail
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          Could you update the patch on RB as well?

          Show
          mohitsabharwal Mohit Sabharwal added a comment - Could you update the patch on RB as well?
          Hide
          kellyzly liyunzhang added a comment -

          Now after testing in my jenkin’s, compare the test result(attached PIG-4374_4.patch_Jenkins_result.png) with https://builds.apache.org/job/Pig-spark/82/#showFailuresLink(129failures). No adding unittests.
          In PIG-4374_4.patch, following changes are added:
          1. Implement SparkCompiler#visitMergeJoin, SparkCompiler#visitCollectedGroup

          Next step work:
          1. Implement SparkCompiler#visitLimit, SparkCompiler#visitFRJoin
          2. change SparkLauncher#physicalToRDD

          private void physicalToRDD(PhysicalPlan plan,
                      PhysicalOperator physicalOperator,
                      Map<OperatorKey, RDD<Tuple>> rdds,
                      Map<Class<? extends PhysicalOperator>, POConverter> convertMap)
                      throws IOException 
          

          to

          private void sparkPlanToRDD(SparkOperPlan plan) throws  IOException
          
          Show
          kellyzly liyunzhang added a comment - Now after testing in my jenkin’s, compare the test result(attached PIG-4374 _4.patch_Jenkins_result.png) with https://builds.apache.org/job/Pig-spark/82/#showFailuresLink(129failures ). No adding unittests. In PIG-4374 _4.patch, following changes are added: 1. Implement SparkCompiler#visitMergeJoin, SparkCompiler#visitCollectedGroup Next step work: 1. Implement SparkCompiler#visitLimit, SparkCompiler#visitFRJoin 2. change SparkLauncher#physicalToRDD private void physicalToRDD(PhysicalPlan plan, PhysicalOperator physicalOperator, Map<OperatorKey, RDD<Tuple>> rdds, Map< Class <? extends PhysicalOperator>, POConverter> convertMap) throws IOException to private void sparkPlanToRDD(SparkOperPlan plan) throws IOException
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          Could you update the patch on RB as well?

          Show
          mohitsabharwal Mohit Sabharwal added a comment - Could you update the patch on RB as well?
          Hide
          kellyzly liyunzhang added a comment -
          Show
          kellyzly liyunzhang added a comment - PIG-4374 _4.patch review board: https://reviews.apache.org/r/30299/
          Hide
          kellyzly liyunzhang added a comment -

          review board:https://reviews.apache.org/r/30299/
          after testing in my jenkin’s, comparing the test result with https://builds.apache.org/job/Pig-spark/97/testReport/ (125failures). following unit tests fail:
          // merge join
          org.apache.pig.test.TestMergeJoin.testExpressionFail

          //skewedjoin
          org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinManyReducers
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinOneValue
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithNoProperties
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinEmptyInput

          // a complicated case using both 'group' and 'split'
          org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause

          Because SparkCompiler#visitSkewedJoin and SparkCompiler#visitMergeJoin are not implemented. All unit tests about these two fail.
          org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause is about a complicated case using both 'group' and 'split'. I will investigate how to fix TestScalarAliases.testScalarAliasesSplitClause later.

          Show
          kellyzly liyunzhang added a comment - review board: https://reviews.apache.org/r/30299/ after testing in my jenkin’s, comparing the test result with https://builds.apache.org/job/Pig-spark/97/testReport/ (125failures). following unit tests fail: // merge join org.apache.pig.test.TestMergeJoin.testExpressionFail //skewedjoin org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup org.apache.pig.test.TestSkewedJoin.testSkewedJoinManyReducers org.apache.pig.test.TestSkewedJoin.testSkewedJoinOneValue org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithNoProperties org.apache.pig.test.TestSkewedJoin.testSkewedJoinEmptyInput // a complicated case using both 'group' and 'split' org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause Because SparkCompiler#visitSkewedJoin and SparkCompiler#visitMergeJoin are not implemented. All unit tests about these two fail. org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause is about a complicated case using both 'group' and 'split'. I will investigate how to fix TestScalarAliases.testScalarAliasesSplitClause later.
          Hide
          kellyzly liyunzhang added a comment -

          PIG-4374_6_patch_jekins.png shows all failures of unit tests. Compared the test result with https://builds.apache.org/job/Pig-spark/97/testReport/ (125failures), following unit tests failures are added:
          // merge join
          org.apache.pig.test.TestMergeJoin.testExpressionFail

          //skewedjoin
          org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinManyReducers
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinOneValue
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithNoProperties
          org.apache.pig.test.TestSkewedJoin.testSkewedJoinEmptyInput

          // a complicated case using both 'group' and 'split'
          org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause

          following unit tests failures are deleted:
          org.apache.pig.test.TestLimitVariable.testNestedLimitVariable1
          org.apache.pig.test.TestLimitVariable.testZeroLimitVariable
          org.apache.pig.test.TestEvalPipeline2.testPushUpFilterScalar
          org.apache.pig.test.TestSample.testSample_VariableAll

          Show
          kellyzly liyunzhang added a comment - PIG-4374 _6_patch_jekins.png shows all failures of unit tests. Compared the test result with https://builds.apache.org/job/Pig-spark/97/testReport/ (125failures), following unit tests failures are added: // merge join org.apache.pig.test.TestMergeJoin.testExpressionFail //skewedjoin org.apache.pig.test.TestJoinSmoke.testSkewedJoinWithGroup org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithGroup org.apache.pig.test.TestSkewedJoin.testSkewedJoinManyReducers org.apache.pig.test.TestSkewedJoin.testSkewedJoinOneValue org.apache.pig.test.TestSkewedJoin.testSkewedJoinWithNoProperties org.apache.pig.test.TestSkewedJoin.testSkewedJoinEmptyInput // a complicated case using both 'group' and 'split' org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause following unit tests failures are deleted: org.apache.pig.test.TestLimitVariable.testNestedLimitVariable1 org.apache.pig.test.TestLimitVariable.testZeroLimitVariable org.apache.pig.test.TestEvalPipeline2.testPushUpFilterScalar org.apache.pig.test.TestSample.testSample_VariableAll
          Hide
          kellyzly liyunzhang added a comment -

          How to change a physical plan to a spark plan.docx describes how to change a physical plan to a spark plan when using "group","join" and other operators.

          Show
          kellyzly liyunzhang added a comment - How to change a physical plan to a spark plan.docx describes how to change a physical plan to a spark plan when using "group","join" and other operators.
          Hide
          mohitsabharwal Mohit Sabharwal added a comment -

          Praveen Rachabattuni I know there are some follow-up items on this on RB, but since it's blocking some other tasks, do you feel we should commit as is? It is not adding unit tests failures other than skewed join and merge join ones, which is expected since these are TODO items for Spark. I'd be happy to take the follow-up items I mentioned on RB in follow-on JIRAs.

          Other tasks that depend on this include PIG-4221 and PIG-4422. Once this patch is committed, I can start work on PIG-4221/2 as well as follow-up items on this jira.

          Show
          mohitsabharwal Mohit Sabharwal added a comment - Praveen Rachabattuni I know there are some follow-up items on this on RB, but since it's blocking some other tasks, do you feel we should commit as is? It is not adding unit tests failures other than skewed join and merge join ones, which is expected since these are TODO items for Spark. I'd be happy to take the follow-up items I mentioned on RB in follow-on JIRAs. Other tasks that depend on this include PIG-4221 and PIG-4422 . Once this patch is committed, I can start work on PIG-4221 /2 as well as follow-up items on this jira.
          Hide
          praveenr019 Praveen Rachabattuni added a comment -

          Mohit Sabharwal Sounds good. We can continue the work of failure tests on other jiras, I believe jira is wrongly mentioned as PIG-4221 instead of PIG-4421.

          I have committed this to Spark branch. Thanks liyunzhang

          Show
          praveenr019 Praveen Rachabattuni added a comment - Mohit Sabharwal Sounds good. We can continue the work of failure tests on other jiras, I believe jira is wrongly mentioned as PIG-4221 instead of PIG-4421 . I have committed this to Spark branch. Thanks liyunzhang
          Hide
          kellyzly liyunzhang added a comment -

          In PIG-4374_7.patch, all fix are code format problems according to Mohit's comments on https://reviews.apache.org/r/30299/.

          Show
          kellyzly liyunzhang added a comment - In PIG-4374 _7.patch, all fix are code format problems according to Mohit's comments on https://reviews.apache.org/r/30299/ .
          Hide
          kellyzly liyunzhang added a comment -

          Because i formatted the code style of some classes like SparkLauncher.java, SparkCompiler.java and so on. It seems i changed a lot in this patch but actually only code style changes.

          Show
          kellyzly liyunzhang added a comment - Because i formatted the code style of some classes like SparkLauncher.java, SparkCompiler.java and so on. It seems i changed a lot in this patch but actually only code style changes.
          Hide
          kellyzly liyunzhang added a comment -

          In PIG-4374_8.patch:
          compare with last jenkins with my jenkins(attached PIG-4374_8.patch.jenkins.png) result:
          Fix following unit test failures:
          org.apache.pig.test.TestLimitVariable.testLimitVariable1
          org.apache.pig.test.TestLimitVariable.testLimitVariable2
          org.apache.pig.test.TestLimitVariable.testLimitVariable3
          org.apache.pig.test.TestLimitVariable.testLimitVariable4
          org.apache.pig.test.TestSample.testSample_VariableNone
          org.apache.pig.test.TestSample.testSample_VariableSome
          org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause

          Show
          kellyzly liyunzhang added a comment - In PIG-4374 _8.patch: compare with last jenkins with my jenkins(attached PIG-4374 _8.patch.jenkins.png) result: Fix following unit test failures: org.apache.pig.test.TestLimitVariable.testLimitVariable1 org.apache.pig.test.TestLimitVariable.testLimitVariable2 org.apache.pig.test.TestLimitVariable.testLimitVariable3 org.apache.pig.test.TestLimitVariable.testLimitVariable4 org.apache.pig.test.TestSample.testSample_VariableNone org.apache.pig.test.TestSample.testSample_VariableSome org.apache.pig.test.TestScalarAliases.testScalarAliasesSplitClause
          Hide
          praveenr019 Praveen Rachabattuni added a comment -

          Re-opening jira for follow-up clean up tasks.

          Show
          praveenr019 Praveen Rachabattuni added a comment - Re-opening jira for follow-up clean up tasks.
          Hide
          kellyzly liyunzhang added a comment -

          Hi Praveen Rachabattuni and Xuefu Zhang:
          i have removed PIG-4374_8.patch. I only made a small change in PIG-4374_8.patch but still need to file a new jira(PIG-4456) to split the changes from PIG-4374. In PIG-4374_7.patch, all changes are about code format change. You can submit PIG-4374_7.patch.

          Show
          kellyzly liyunzhang added a comment - Hi Praveen Rachabattuni and Xuefu Zhang : i have removed PIG-4374 _8.patch. I only made a small change in PIG-4374 _8.patch but still need to file a new jira( PIG-4456 ) to split the changes from PIG-4374 . In PIG-4374 _7.patch, all changes are about code format change. You can submit PIG-4374 _7.patch.
          Hide
          xuefuz Xuefu Zhang added a comment -

          +1 for patch #7.

          I'm going to commit this patch to unblock Liyun's work. For any review feedback, we can create followup jiras to make changes as needed.

          Show
          xuefuz Xuefu Zhang added a comment - +1 for patch #7. I'm going to commit this patch to unblock Liyun's work. For any review feedback, we can create followup jiras to make changes as needed.
          Hide
          xuefuz Xuefu Zhang added a comment -

          Committed to Spark branch. Thanks, Liyun!

          Show
          xuefuz Xuefu Zhang added a comment - Committed to Spark branch. Thanks, Liyun!

            People

            • Assignee:
              kellyzly liyunzhang
              Reporter:
              kellyzly liyunzhang
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development