From 0cb2a043e449573877accd5b2e029528808f12e8 Mon Sep 17 00:00:00 2001 From: kbuilder Date: Tue, 21 May 2024 09:54:44 -0700 Subject: [PATCH] Release 0.39.0. --- CHANGES.md | 2 +- README.md | 66 ++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d022c2364..732e9e196 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # Release Notes -## Next +## 0.39.0 - 2024-05-21 * PR #1221: Adding support for [table snapshots](https://cloud.google.com/bigquery/docs/table-snapshots-intro). Thanks @tom-s-powell ! * PR #1222: Add option to request lz4 compressed ReadRowsResponse diff --git a/README.md b/README.md index fe80d516a..0bce7232e 100644 --- a/README.md +++ b/README.md @@ -57,14 +57,14 @@ The latest version of the connector is publicly available in the following links | version | Link | |------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Spark 3.5 | `gs://spark-lib/bigquery/spark-3.5-bigquery-0.38.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.5-bigquery-0.38.0.jar)) | -| Spark 3.4 | `gs://spark-lib/bigquery/spark-3.4-bigquery-0.38.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.4-bigquery-0.38.0.jar)) | -| Spark 3.3 | `gs://spark-lib/bigquery/spark-3.3-bigquery-0.38.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.3-bigquery-0.38.0.jar)) | -| Spark 3.2 | `gs://spark-lib/bigquery/spark-3.2-bigquery-0.38.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.2-bigquery-0.38.0.jar)) | -| Spark 3.1 | `gs://spark-lib/bigquery/spark-3.1-bigquery-0.38.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.1-bigquery-0.38.0.jar)) | +| Spark 3.5 | `gs://spark-lib/bigquery/spark-3.5-bigquery-0.39.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.5-bigquery-0.39.0.jar)) | +| Spark 3.4 | `gs://spark-lib/bigquery/spark-3.4-bigquery-0.39.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.4-bigquery-0.39.0.jar)) | +| Spark 3.3 | `gs://spark-lib/bigquery/spark-3.3-bigquery-0.39.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.3-bigquery-0.39.0.jar)) | +| Spark 3.2 | `gs://spark-lib/bigquery/spark-3.2-bigquery-0.39.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.2-bigquery-0.39.0.jar)) | +| Spark 3.1 | `gs://spark-lib/bigquery/spark-3.1-bigquery-0.39.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-3.1-bigquery-0.39.0.jar)) | | Spark 2.4 | `gs://spark-lib/bigquery/spark-2.4-bigquery-0.37.0.jar`([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-2.4-bigquery-0.37.0.jar)) | -| Scala 2.13 | `gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.13-0.38.0.jar` ([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-bigquery-with-dependencies_2.13-0.38.0.jar)) | -| Scala 2.12 | `gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.38.0.jar` ([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.38.0.jar)) | +| Scala 2.13 | `gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.13-0.39.0.jar` ([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-bigquery-with-dependencies_2.13-0.39.0.jar)) | +| Scala 2.12 | `gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.39.0.jar` ([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.39.0.jar)) | | Scala 2.11 | `gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.11-0.29.0.jar` ([HTTP link](https://storage.googleapis.com/spark-lib/bigquery/spark-bigquery-with-dependencies_2.11-0.29.0.jar)) | The first six versions are Java based connectors targeting Spark 2.4/3.1/3.2/3.3/3.4/3.5 of all Scala versions built on the new @@ -107,14 +107,14 @@ repository. It can be used using the `--packages` option or the | version | Connector Artifact | |------------|------------------------------------------------------------------------------------| -| Spark 3.5 | `com.google.cloud.spark:spark-3.5-bigquery:0.38.0` | -| Spark 3.4 | `com.google.cloud.spark:spark-3.4-bigquery:0.38.0` | -| Spark 3.3 | `com.google.cloud.spark:spark-3.3-bigquery:0.38.0` | -| Spark 3.2 | `com.google.cloud.spark:spark-3.2-bigquery:0.38.0` | -| Spark 3.1 | `com.google.cloud.spark:spark-3.1-bigquery:0.38.0` | +| Spark 3.5 | `com.google.cloud.spark:spark-3.5-bigquery:0.39.0` | +| Spark 3.4 | `com.google.cloud.spark:spark-3.4-bigquery:0.39.0` | +| Spark 3.3 | `com.google.cloud.spark:spark-3.3-bigquery:0.39.0` | +| Spark 3.2 | `com.google.cloud.spark:spark-3.2-bigquery:0.39.0` | +| Spark 3.1 | `com.google.cloud.spark:spark-3.1-bigquery:0.39.0` | | Spark 2.4 | `com.google.cloud.spark:spark-2.4-bigquery:0.37.0` | -| Scala 2.13 | `com.google.cloud.spark:spark-bigquery-with-dependencies_2.13:0.38.0` | -| Scala 2.12 | `com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.38.0` | +| Scala 2.13 | `com.google.cloud.spark:spark-bigquery-with-dependencies_2.13:0.39.0` | +| Scala 2.12 | `com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.39.0` | | Scala 2.11 | `com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.29.0` | ### Specifying the Spark BigQuery connector version in a Dataproc cluster @@ -124,8 +124,8 @@ Using the standard `--jars` or `--packages` (or alternatively, the `spark.jars`/ To use another version than the built-in one, please do one of the following: -* For Dataproc clusters, using image 2.1 and above, add the following flag on cluster creation to upgrade the version `--metadata SPARK_BQ_CONNECTOR_VERSION=0.38.0`, or `--metadata SPARK_BQ_CONNECTOR_URL=gs://spark-lib/bigquery/spark-3.3-bigquery-0.38.0.jar` to create the cluster with a different jar. The URL can point to any valid connector JAR for the cluster's Spark version. -* For Dataproc serverless batches, add the following property on batch creation to upgrade the version: `--properties dataproc.sparkBqConnector.version=0.38.0`, or `--properties dataproc.sparkBqConnector.uri=gs://spark-lib/bigquery/spark-3.3-bigquery-0.38.0.jar` to create the batch with a different jar. The URL can point to any valid connector JAR for the runtime's Spark version. +* For Dataproc clusters, using image 2.1 and above, add the following flag on cluster creation to upgrade the version `--metadata SPARK_BQ_CONNECTOR_VERSION=0.39.0`, or `--metadata SPARK_BQ_CONNECTOR_URL=gs://spark-lib/bigquery/spark-3.3-bigquery-0.39.0.jar` to create the cluster with a different jar. The URL can point to any valid connector JAR for the cluster's Spark version. +* For Dataproc serverless batches, add the following property on batch creation to upgrade the version: `--properties dataproc.sparkBqConnector.version=0.39.0`, or `--properties dataproc.sparkBqConnector.uri=gs://spark-lib/bigquery/spark-3.3-bigquery-0.39.0.jar` to create the batch with a different jar. The URL can point to any valid connector JAR for the runtime's Spark version. ## Hello World Example @@ -135,7 +135,7 @@ You can run a simple PySpark wordcount against the API without compilation by ru ``` gcloud dataproc jobs submit pyspark --cluster "$MY_CLUSTER" \ - --jars gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.38.0.jar \ + --jars gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.39.0.jar \ examples/python/shakespeare.py ``` @@ -773,6 +773,16 @@ word-break:break-word Read + + responseCompressionCodec + + Compression codec used to compress the ReadRowsResponse data. Options: + RESPONSE_COMPRESSION_CODEC_UNSPECIFIED, + RESPONSE_COMPRESSION_CODEC_LZ4 +
(Optional. Defaults to RESPONSE_COMPRESSION_CODEC_UNSPECIFIED which means no compression will be used) + + Read + cacheExpirationTimeInMinutes @@ -889,7 +899,15 @@ word-break:break-word Read/Write - + + snapshotTimeMillis + + A timestamp specified in milliseconds to use to read a table snapshot. + By default this is not set and the latest version of a table is read. +
(Optional) + + Read + Options can also be set outside of the code, using the `--conf` parameter of `spark-submit` or `--properties` parameter @@ -1161,7 +1179,7 @@ using the following code: ```python from pyspark.sql import SparkSession spark = SparkSession.builder \ - .config("spark.jars.packages", "com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.38.0") \ + .config("spark.jars.packages", "com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.39.0") \ .getOrCreate() df = spark.read.format("bigquery") \ .load("dataset.table") @@ -1170,7 +1188,7 @@ df = spark.read.format("bigquery") \ **Scala:** ```scala val spark = SparkSession.builder -.config("spark.jars.packages", "com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.38.0") +.config("spark.jars.packages", "com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.39.0") .getOrCreate() val df = spark.read.format("bigquery") .load("dataset.table") @@ -1178,7 +1196,7 @@ val df = spark.read.format("bigquery") In case Spark cluster is using Scala 2.12 (it's optional for Spark 2.4.x, mandatory in 3.0.x), then the relevant package is -com.google.cloud.spark:spark-bigquery-with-dependencies_**2.12**:0.38.0. In +com.google.cloud.spark:spark-bigquery-with-dependencies_**2.12**:0.39.0. In order to know which Scala version is used, please run the following code: **Python:** @@ -1202,14 +1220,14 @@ To include the connector in your project: com.google.cloud.spark spark-bigquery-with-dependencies_${scala.version} - 0.38.0 + 0.39.0 ``` ### SBT ```sbt -libraryDependencies += "com.google.cloud.spark" %% "spark-bigquery-with-dependencies" % "0.38.0" +libraryDependencies += "com.google.cloud.spark" %% "spark-bigquery-with-dependencies" % "0.39.0" ``` ### Connector metrics and how to view them @@ -1254,7 +1272,7 @@ word-break:break-word -**Note:** To use the metrics in the Spark UI page, you need to make sure the `spark-bigquery-metrics-0.38.0.jar` is the class path before starting the history-server and the connector version is `spark-3.2` or above. +**Note:** To use the metrics in the Spark UI page, you need to make sure the `spark-bigquery-metrics-0.39.0.jar` is the class path before starting the history-server and the connector version is `spark-3.2` or above. ## FAQ