簡體   English   中英

在創建數據集時使用 @JsonProperty 重命名 spark 中的列

[英]Rename columns in spark using @JsonProperty while creating Datasets

有沒有辦法在創建數據集時使用 Jackson 注釋重命名數據集中的列名?

我的編碼器類如下:

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import scala.Serializable;
import javax.persistence.Table;

      @Builder 
      @Data 
      @AllArgsConstructor
      @EqualsAndHashCode 
      @Table(name = "sample_table")
      public class SampleRecord implements Serializable {
         @JsonProperty("sample_id")
         private Long sampleId;
         @JsonProperty("sample_name")
         private String name;
         @JsonProperty("sample_desc")
         private String description; 
      }

我的目標是根據@JsonProperty 重命名列,以便我可以重新使用相同的類和 json 功能。

請找到模塊的相關版本: - Spark : 2.4.0 (with scala 2.11) - jackson-module-scala_2.11 : 2.9.6

如果您需要更多信息,請與我們聯系。 幫助表示贊賞。


public class SampleRecord implements Serializable {
         private Long sampleId;

         private String name;

         private String description; 


@JsonProperty("sample_id")
public void setSampleId(Long sampleId) {
        this.sampleId = sampleId;
    }

@JsonProperty("sample_name")
public void setName(String name) {
        this.name = name;
    }


@JsonProperty("sample_desc")
public void setDescription(String description) {
        this.description = description;
    }
}

有趣的想法。 我會這樣做:

  1. 在數據框中攝取您的數據。
  2. 編寫一個使用數據框和類名的實用方法(這里是 SampleRecord)。
  3. 使用自省來讀取注釋(如果需要定義特定屬性,您最終可以添加一些注釋)。
  4. 使用數據框上的 withColumnRenamed() 重命名列。
  5. 返回修改后的數據幀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM