집 >데이터 베이스 >MySQL 튜토리얼 >Apache Spark DataFrames에서 열을 연결하는 방법은 무엇입니까?
Apache Spark DataFrame의 열 조인
Spark 애플리케이션에서 구조화된 데이터를 처리하려면 여러 열을 전체로 결합해야 하는 경우가 많습니다. 일반적인 작업은 두 개 이상의 열을 결합하여 새로운 결합된 열을 생성하는 것입니다. Spark SQL은 이를 원활하게 수행할 수 있는 편리한 메커니즘을 제공합니다.
방법 1: 원본 SQL에서 CONCAT 함수 사용
원시 SQL 쿼리로 작업하는 사용자에게는 CONCAT 기능이 유용할 수 있습니다. 여러 문자열 열을 단일 문자열로 결합할 수 있습니다.
파이썬:
<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에는 API에서 열을 연결하는 우아한 방법을 제공하는 concat 함수가 도입되었습니다.
파이썬:
<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 DataFrames에서 열을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!