注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このコードは、PySpark の concat_ws() 関数と sha2() 関数を使って複数の列を連結し、必要に応じて結果をハッシュ化することで、安定した一意の主キーを作成します。この方法により、データセット内の行を一意に識別するための、堅牢で安定した有効な主キーを作成できます。
主キーは一意で、null ではなく、安定している必要があります。単調増加する ID や乱数など、非決定論的な主キーや不安定な主キーを使うと、次のような問題が生じる可能性があります。
主キーを作成する際の適切な方法は、データセット内で各行を一意に識別できる列の組み合わせを使うことです。たとえば、出席状況のデータセットでは、student ID 列と date 列の組み合わせで各行を一意に識別できます。
以下は、列 A、B、C によって各行が一意に識別されるデータセットの主キーを生成するコードスニペットの例です。連結には concat_ws() 関数を使い、必要に応じて sha2() 関数を使うことで、各キーの長さと形式を統一します。
Copied!1 2 3 4 5 6 7from pyspark.sql import functions as F # すべての列を連結します df = df.withColumn("primary_key", F.concat_ws(":", "A", "B", "C")) # 必要に応じてハッシュを作成し、すべてのキーの長さと形式を統一します df = df.withColumn("primary_key", F.sha2(F.col("primary_key"), 256))
これらのベストプラクティスに従うことで、データセット内の行を一意に識別するための、堅牢で安定した有効な主キーを作成できます。
言語: Python
pyspark, dataframe