使用具有指定压缩级别的 Zstandard 返回 expr 的压缩值。 默认级别为 3。 默认情况下使用单传递模式。
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.zstd_compress(input=<input>, level=<level>, streaming_mode=<streaming_mode>)
参数
| 参数 | 类型 | Description |
|---|---|---|
input |
pyspark.sql.Column 或 str |
要压缩的二进制值。 |
level |
pyspark.sql.Column 或 int(可选) |
表示压缩级别的可选整数参数。 压缩级别控制压缩速度和压缩比率之间的权衡。 有效值:介于 1 和 22(含 1)之间,其中 1 表示最快但压缩率最低,22 表示最慢但压缩率最高。 如果未指定,则默认级别为 3。 |
streaming_mode |
pyspark.sql.Column 或 bool(可选) |
表示是否使用流模式的可选布尔参数。 如果为 true,则函数将在流式处理模式下压缩。 默认值为 false。 |
退货
pyspark.sql.Column:包含压缩值的新列。
例子
示例 1:使用 Zstandard 压缩数据
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([("Apache Spark " * 10,)], ["input"])
df.select(dbf.base64(dbf.zstd_compress(df.input)).alias("result")).show(truncate=False)
+----------------------------------------+
|result |
+----------------------------------------+
|KLUv/SCCpQAAaEFwYWNoZSBTcGFyayABABLS+QU=|
+----------------------------------------+
示例 2:使用具有给定压缩级别的 Zstandard 压缩数据
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([("Apache Spark " * 10,)], ["input"])
df.select(dbf.base64(dbf.zstd_compress(df.input, dbf.lit(5))).alias("result")).show(truncate=False)
+----------------------------------------+
|result |
+----------------------------------------+
|KLUv/SCCpQAAaEFwYWNoZSBTcGFyayABABLS+QU=|
+----------------------------------------+
示例 3:在流式处理模式下使用 Zstandard 压缩数据
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([("Apache Spark " * 10,)], ["input"])
df.select(dbf.base64(dbf.zstd_compress(df.input, dbf.lit(3), dbf.lit(True))).alias("result")).show(truncate=False)
+--------------------------------------------+
|result |
+--------------------------------------------+
|KLUv/QBYpAAAaEFwYWNoZSBTcGFyayABABLS+QUBAAA=|
+--------------------------------------------+