tree 6e870aec056857074bb348e3e9458223cdeb4034
parent 67b24baf3d044d743c8a0368be99d639e4487da0
author sychen <sychen@ctrip.com> 1713973730 -0700
committer Dongjoon Hyun <dongjoon@apache.org> 1713973730 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE8oycklwYjDXjRWFN7aAM6DTw/FwFAmYpKeIACgkQ7aAM6DTw
 /FzOOw//Sf2eId9WIpeAbmm84/MzptNYFYIDs+O2Bn3R+xtroX0/6iyz1mCRS3vK
 OKqSQZMECu1hVpv9z5jVQphFqryPIKJh81JdCCIXXosuu3j5MdsFhYl+K/GsnEIO
 r5oUnuv/9z73By5JolV2K4ZDKuuzD6keER9NhtXoFpxSqmUjOaVs5egQleAso+2u
 ESYQQjFNoZmrRGo+RAz52/lAg7hwI6y0dr4A6N0Qg2lHTQDLfCCaoFcEXLodCCnr
 h/648DHfm01C1bDM4Vd/F05fO19TZscnDE0zYAZqNY8vbTsMGlbXCrpq/OiEpFpV
 +XyyjKQVB3F46q1UnNG6pBR2V3v6AE3Xyenrqxtw+wzW42LEAv2HiBIq+cQ/mBEX
 C9FVT9F15YBBP0gMvXO3SlYBY04062tdWqgjhXpp4ksWjjgrh3rgd34xMZp5DKmn
 wESe9M4x8VX/SPAOa4PHifUvYeNNQT/bedpA/bQb+hEIRj74+tw90+DXcAFfKCCC
 PqUsPkKzE/KtWtnKfAxQEx0UpVWbOHANPdk0CoYMRY+gXwIkxz6J3b7FlGJeGJgl
 UnsL4kAXd57hrCbARtG4JSvoiSITwqqTI/ItSllKKycLhQpVk/MYavO0UsHSHrXt
 FHlF9cf0ZWFq4KA+PRnS2v5/ZQHvsGn5EuvytDF/gvL2tmxdHOA=
 =Gr6p
 -----END PGP SIGNATURE-----

ORC-1699: Fix SparkBenchmark in Parquet format according to SPARK-40918

### What changes were proposed in this pull request?
This PR aims to fix SparkBenchmark in Parquet format according to SPARK-40918.

### Why are the changes needed?
Similar to [ORC-1578](https://issues.apache.org/jira/browse/ORC-1578), there are similar problems when reading parquet format files in SparkBenchmark.

```java
java.lang.IllegalArgumentException: OPTION_RETURNING_BATCH should always be set for ParquetFileFormat. To workaround this issue, set spark.sql.parquet.enableVectorizedReader=false.
	at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat.$anonfun$buildReaderWithPartitionValues$1(ParquetFileFormat.scala:192)
	at scala.collection.immutable.Map$EmptyMap$.getOrElse(Map.scala:110)
	at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat.buildReaderWithPartitionValues(ParquetFileFormat.scala:191)
	at org.apache.orc.bench.spark.SparkBenchmark.pushDown(SparkBenchmark.java:314)
	at org.apache.orc.bench.spark.jmh_generated.SparkBenchmark_pushDown_jmhTest.pushDown_avgt_jmhStub(SparkBenchmark_pushDown_jmhTest.java:219)
```

### How was this patch tested?
local test

### Was this patch authored or co-authored using generative AI tooling?
No

Closes #1908 from cxzl25/ORC-1699.

Authored-by: sychen <sychen@ctrip.com>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
