gatorsmile commented on a change in pull request #23506: [SPARK-26577][SQL] Add input optimizer when reading Hive table by SparkSQL URL: https://github.com/apache/spark/pull/23506#discussion_r247665933
########## File path: sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveTableScanSuite.scala ########## @@ -192,4 +192,47 @@ class HiveTableScanSuite extends HiveComparisonTest with SQLTestUtils with TestH case p: HiveTableScanExec => p }.get } -} + + test("Test the InputFormat optimizer") { + withTable("table_old", "table_pt_old", "table_new", "table_pt_new") { + sql("set spark.sql.hive.fileInputFormat.enabled=true") + sql("set spark.sql.hive.fileInputFormat.split.maxsize=134217728") + sql("set spark.sql.hive.fileInputFormat.split.minsize=134217728") + sql( + s""" + |CREATE TABLE table_old (id int) + |STORED AS + |INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' + |OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' + """.stripMargin) + sql( + s""" + |CREATE TABLE table_pt_old (id int) + |PARTITIONED BY (a int, b int) + |STORED AS + |INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' + |OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' + """.stripMargin) + sql( + s""" + |CREATE TABLE table_new (id int) + |STORED AS + |INPUTFORMAT 'org.apache.hadoop.mapreduce.lib.input.TextInputFormat' + |OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' + """.stripMargin) + sql( + s""" + |CREATE TABLE table_pt_new (id int) + |PARTITIONED BY (a int, b int) + |STORED AS + |INPUTFORMAT 'org.apache.hadoop.mapreduce.lib.input.TextInputFormat' + |OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' + """.stripMargin) + + sql("SELECT count(1) FROM table_old") + sql("SELECT count(1) FROM table_pt_old") + sql("SELECT count(1) FROM table_new") Review comment: You need to call `show` to trigger the execution. Your test case exposed a bug in the support of `org.apache.hadoop.mapreduce.lib.input.TextInputFormat`. Could you open a JIRA and submit a separate PR to fix the issue? I think this PR does not resolve it. For supporting `org.apache.hadoop.mapreduce.lib.input.TextInputFormat`, you need to use `NewHadoopRDD` instead of `HadoopRDD`. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org