Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengonversi string menjadi peta setelah memisahkan teks menjadi pasangan kunci/nilai menggunakan pemisah. Keduanya pairDelim dan keyValueDelim diperlakukan sebagai ekspresi reguler.
Syntax
from pyspark.sql import functions as sf
sf.str_to_map(text, pairDelim=None, keyValueDelim=None)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
text |
pyspark.sql.Column atau str |
Kolom input atau string. |
pairDelim |
pyspark.sql.Column atau str, opsional |
Pemisah yang digunakan untuk memisahkan pasangan. Defaultnya adalah koma (,). |
keyValueDelim |
pyspark.sql.Column atau str, opsional |
Pemisah yang akan digunakan untuk membagi kunci/nilai. Defaultnya adalah titik dua (:). |
Pengembalian Barang
pyspark.sql.Column: Kolom baru jenis peta tempat setiap string di kolom asli dikonversi menjadi peta.
Examples
Contoh 1: Menggunakan pemisah default
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a:1,b:2,c:3",)], ["e"])
df.select(sf.str_to_map(df.e)).show(truncate=False)
+------------------------+
|str_to_map(e, ,, :) |
+------------------------+
|{a -> 1, b -> 2, c -> 3}|
+------------------------+
Contoh 2: Menggunakan pemisah kustom
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a=1;b=2;c=3",)], ["e"])
df.select(sf.str_to_map(df.e, sf.lit(";"), sf.lit("="))).show(truncate=False)
+------------------------+
|str_to_map(e, ;, =) |
+------------------------+
|{a -> 1, b -> 2, c -> 3}|
+------------------------+
Contoh 3: Menggunakan pemisah yang berbeda untuk baris yang berbeda
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a:1,b:2,c:3",), ("d=4;e=5;f=6",)], ["e"])
df.select(sf.str_to_map(df.e,
sf.when(df.e.contains(";"), sf.lit(";")).otherwise(sf.lit(",")),
sf.when(df.e.contains("="), sf.lit("=")).otherwise(sf.lit(":"))).alias("str_to_map")
).show(truncate=False)
+------------------------+
|str_to_map |
+------------------------+
|{a -> 1, b -> 2, c -> 3}|
|{d -> 4, e -> 5, f -> 6}|
+------------------------+
Contoh 4: Menggunakan kolom pemisah
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a:1,b:2,c:3", ","), ("d=4;e=5;f=6", ";")], ["e", "delim"])
df.select(sf.str_to_map(df.e, df.delim, sf.lit(":"))).show(truncate=False)
+---------------------------------------+
|str_to_map(e, delim, :) |
+---------------------------------------+
|{a -> 1, b -> 2, c -> 3} |
|{d=4 -> NULL, e=5 -> NULL, f=6 -> NULL}|
+---------------------------------------+
Contoh 5: Menggunakan kolom pembatas kunci/nilai
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a:1,b:2,c:3", ":"), ("d=4;e=5;f=6", "=")], ["e", "delim"])
df.select(sf.str_to_map(df.e, sf.lit(","), df.delim)).show(truncate=False)
+------------------------+
|str_to_map(e, ,, delim) |
+------------------------+
|{a -> 1, b -> 2, c -> 3}|
|{d -> 4;e=5;f=6} |
+------------------------+