spark dataframe 에 열 을 추가 하 는 네 가지 방법

spark dataframe 에 열 을 추가 하 는 네 가지 방법
scala + spark 를 배 우 는 풋내기 로 서 처음에 dataframe 의 다양한 처 리 를 배 웠 습 니 다. 한 열 을 추가 하 는 방법 에 대해 여러 가지 조회 학습 을 통 해 다음 과 같은 네 가지 자주 사용 하 는 방법 을 정리 하여 여러분 께 공유 하여 선배 들 의 인터넷 지원 에 보답 하 겠 습 니 다.
  • 방법 1: createDataFrame 방법 을 이용 하여 열 을 추가 하 는 과정 은 rdd 와 schema 구축 에 포함 된다
  • 방법 2: withColumn 방법 을 이용 하여 열 을 추가 하 는 과정 은 udf 함수 에 포함 되 어 있 습 니 다
  • 방법 3: SQL 코드 를 이용 하여 열 을 추가 하 는 과정 에서 SQL 코드 에 직접 기록 합 니 다
  • 방법 4: 상기 세 가 지 는 판단 이 있 는 열 을 추가 하 는 것 입 니 다. 유일한 번 호 를 추가 하려 면 monotonically 를 사용 하 십시오.increasing_id

  • 부호 블록
    //dataframe      1,  createDataFrame  
    val trdd = input.select(targetColumns).rdd.map(x=>{
      if (x.get(0).toString().toDouble > critValueR || x.get(0).toString().toDouble < critValueL) 
        Row(x.get(0).toString().toDouble,"F")
      else Row(x.get(0).toString().toDouble,"T")      
      })      
    val schema = input.select(targetColumns).schema.add("flag", StringType, true)
    val sample3 = ss.createDataFrame(trdd, schema).distinct().withColumnRenamed(targetColumns, "idx")
    
    //dataframe      2
    val code :(Int => String) = (arg: Int) => {if (arg > critValueR || arg < critValueL) "F" else "T"}
    val addCol = udf(code)
    val sample3 = input.select(targetColumns).withColumn("flag", addCol(input(targetColumns)))
    .withColumnRenamed(targetColumns, "idx")
    
    //dataframe      3
    input.select(targetColumns).createOrReplaceTempView("tmp")
    val sample3 = ss.sqlContext.sql("select distinct "+targetColname+
        " as idx,case when "+targetColname+">"+critValueR+" then 'F'"+
        " when "+targetColname+"

    좋은 웹페이지 즐겨찾기