注: 以下の翻訳の正確性は検証されていません。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 # 全ての列を連結して新しいカラム "primary_key" を作成 df = df.withColumn("primary_key", F.concat_ws(":", "A", "B", "C")) # 必要に応じてハッシュを作成し、全てのキーが同じ長さと形式を持つようにする df = df.withColumn("primary_key", F.sha2(F.col("primary_key"), 256))
これらのベストプラクティスに従うことで、ユーザーの主キーが強固で安定し、データセット内の行を一意に識別するのに効果的であることを保証できます。