ホームページ > データベース > mysql チュートリアル > Apache Spark DataFrame で列を連結するにはどうすればよいですか?

Apache Spark DataFrame で列を連結するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-18 18:56:13
オリジナル
1009 人が閲覧しました

How to Concatenate Columns in Apache Spark DataFrames?

Apache Spark DataFrame で列を結合

Spark アプリケーションでは、構造化データを処理するには、複数の列を結合して全体にする必要がよくあります。一般的なタスクは、2 つ以上の列を結合して、新しい結合列を作成することです。 Spark SQL は、これをシームレスに実現する便利なメカニズムを提供します。

方法 1: 元の SQL で CONCAT 関数を使用する

生の SQL クエリを扱うユーザーにとって、CONCAT 関数は便利です。複数の列の文字列を 1 つの文字列に結合できます。

Python:

<code class="language-python">df = sqlContext.createDataFrame([("foo", 1), ("bar", 2)], ("k", "v"))
df.registerTempTable("df")
sqlContext.sql("SELECT CONCAT(k, ' ', v) FROM df")</code>
ログイン後にコピー

スカラ:

<code class="language-scala">import sqlContext.implicits._

val df = sc.parallelize(Seq(("foo", 1), ("bar", 2))).toDF("k", "v")
df.registerTempTable("df")
sqlContext.sql("SELECT CONCAT(k, ' ', v) FROM df")</code>
ログイン後にコピー

方法 2: DataFrame API の concat 関数を使用する

Spark 1.5.0 以降、DataFrame API には concat 関数が導入され、API で列を連結するエレガントな方法が提供されます。

Python:

<code class="language-python">from pyspark.sql.functions import concat, col, lit

df.select(concat(col("k"), lit(" "), col("v")))</code>
ログイン後にコピー

スカラ:

<code class="language-scala">import org.apache.spark.sql.functions.{concat, lit}

df.select(concat($"k", lit(" "), $"v"))</code>
ログイン後にコピー

方法 3: concat_ws 関数を使用して区切り文字

をカスタマイズする

Spark は、接続文字列間にカスタム区切り文字を指定できる concat_ws 関数も提供します。

例:

<code class="language-python"># 创建一个包含多个列的DataFrame
df = spark.createDataFrame([
    ("John", "Doe", "John Doe"),
    ("Jane", "Smith", "Jane Smith")
], ["first_name", "last_name", "full_name"])

# 使用自定义分隔符连接名字和姓氏
df = df.withColumn("full_name_with_comma", concat_ws(",", df.first_name, df.last_name))</code>
ログイン後にコピー

以上がApache Spark DataFrame で列を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート