반응형
pyspark 데이터 프레임에서 문자열 유형의 열을 int 형식으로 변환하는 방법은 무엇입니까?
pyspark에 데이터 프레임이 있습니다.일부 숫자 열은 다음을 포함합니다.nan
그래서 내가 데이터를 읽고 데이터 프레임의 스키마를 확인할 때, 그 열들은string
유형.
int 타입으로 변경하는 방법.교체했습니다.nan
값이 0이고 스키마를 다시 확인했지만 해당 열에 대한 문자열 유형도 표시됩니다.저는 아래 코드를 따르고 있습니다.
data_df = sqlContext.read.format("csv").load('data.csv',header=True, inferSchema="true")
data_df.printSchema()
data_df = data_df.fillna(0)
data_df.printSchema()
제 데이터는 다음과 같습니다.
여기란Plays
그리고.drafts
정수 값을 포함하고 있지만 이유는nan
이 열에 존재하며 문자열 유형으로 처리됩니다.
from pyspark.sql.types import IntegerType
data_df = data_df.withColumn("Plays", data_df["Plays"].cast(IntegerType()))
data_df = data_df.withColumn("drafts", data_df["drafts"].cast(IntegerType()))
각 열에 대해 루프를 실행할 수 있지만 이것이 문자열 열을 정수로 변환하는 가장 간단한 방법입니다.
당신은 사용할 수 있습니다.cast
바꿔치기 한 후에NaN
와 함께0
,
data_df = df.withColumn("Plays", df.call_time.cast('float'))
수정해야 할 필드가 여러 개인 경우 StructField를 사용하는 것도 방법입니다.
예:
from pyspark.sql.types import StructField,IntegerType, StructType,StringType
newDF=[StructField('CLICK_FLG',IntegerType(),True),
StructField('OPEN_FLG',IntegerType(),True),
StructField('I1_GNDR_CODE',StringType(),True),
StructField('TRW_INCOME_CD_V4',StringType(),True),
StructField('ASIAN_CD',IntegerType(),True),
StructField('I1_INDIV_HHLD_STATUS_CODE',IntegerType(),True)
]
finalStruct=StructType(fields=newDF)
df=spark.read.csv('ctor.csv',schema=finalStruct)
출력:
전에
root
|-- CLICK_FLG: string (nullable = true)
|-- OPEN_FLG: string (nullable = true)
|-- I1_GNDR_CODE: string (nullable = true)
|-- TRW_INCOME_CD_V4: string (nullable = true)
|-- ASIAN_CD: integer (nullable = true)
|-- I1_INDIV_HHLD_STATUS_CODE: string (nullable = true)
이후:
root
|-- CLICK_FLG: integer (nullable = true)
|-- OPEN_FLG: integer (nullable = true)
|-- I1_GNDR_CODE: string (nullable = true)
|-- TRW_INCOME_CD_V4: string (nullable = true)
|-- ASIAN_CD: integer (nullable = true)
|-- I1_INDIV_HHLD_STATUS_CODE: integer (nullable = true)
이것은 캐스팅하기에는 약간 긴 절차이지만, 필요한 모든 필드를 수행할 수 있다는 장점이 있습니다.
필수 필드에만 데이터 유형이 할당된 경우 결과 데이터 프레임에는 변경된 필드만 포함됩니다.
언급URL : https://stackoverflow.com/questions/46956026/how-to-convert-column-with-string-type-to-int-form-in-pyspark-data-frame
반응형
'programing' 카테고리의 다른 글
char* 배열의 C 크기 (0) | 2023.09.24 |
---|---|
@미디어 미디어 쿼리 및 ASP.NET MVC 면도기 구문 충돌 (0) | 2023.09.24 |
mysql/mariadb에서 ID가 같은 여러 행을 WHERE로 쿼리하는 방법 (0) | 2023.09.24 |
각도에서 ng-click not fireing in Angular클릭 시 JS가 실행됩니다. (0) | 2023.09.24 |
Wordpress - Woocommerce remove "Added to Cart" 메시지 (0) | 2023.09.24 |