스택큐힙리스트

PySpark에서 데이터프레임 열을 문자열 타입에서 실수 타입으로 변경하는 방법은 무엇인가요? 본문

카테고리 없음

PySpark에서 데이터프레임 열을 문자열 타입에서 실수 타입으로 변경하는 방법은 무엇인가요?

스택큐힙리스트 2023. 12. 1. 00:02
반응형

나는 문자열로 된 열이 있는 데이터프레임이 있습니다.
PySpark에서 열 유형을 Double 유형으로 변경하고 싶습니다.


다음은 내가 한 방법입니다:


toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn(label,toDoublefunc(joindf['show']))

그냥 알고 싶은 건, 이게 올바른 방법인가요?
로지스틱 회귀를 실행하면 오류가 발생해서 궁금합니다.
이게 문제가 될 수 있을까요?

답변 1

from pyspark.sql import types 
for t in ['BinaryType', 'BooleanType', 'ByteType', 'DateType',
'DecimalType', 'DoubleType', 'FloatType', 'IntegerType',
'LongType', 'ShortType', 'StringType', 'TimestampType']:
print(f{t}: {getattr(types, t)().simpleString()})

BinaryType: 이진
BooleanType: 부울
ByteType: 바이트
DateType: 날짜
DecimalType: 십진수(10,0)
DoubleType: 더블
FloatType: 실수
IntegerType: 정수
LongType: 롱
ShortType: 숏
StringType: 문자열
TimestampType: 타임스탬프

그리고 예시로 복합 유형


types.ArrayType(types.IntegerType()).simpleString()   

'array<int>'

types.MapType(types.StringType(), types.IntegerType()).simpleString()
'map<string,int>'

'맵<문자열,정수>'

답변 2

데이터 분석 작업을 수행할 때 종종 데이터프레임의 열 형식을 조정해야 할 때가 있습니다. 예를 들어, PySpark에서 문자열 형식으로 저장된 열을 실수 형식으로 변경해야 하는 경우가 있습니다. 이를 위해 몇 가지 간단한 단계를 따라야 합니다.
1. PySpark를 import 합니다:
```python
from pyspark.sql import SparkSession
```
2. SparkSession을 생성합니다:
```python
spark = SparkSession.builder.getOrCreate()
```
3. 데이터프레임을 생성하거나 읽어옵니다. 이 예시에서는 CSV 파일로부터 데이터프레임을 읽는 것으로 가정합니다:
```python
df = spark.read.csv('data.csv', header=True, inferSchema=True)
```
4. 데이터프레임의 열을 문자열에서 실수로 변환합니다. PySpark에서는 `cast()` 메소드를 사용하여 열의 데이터 형식을 변경할 수 있습니다. `withColumn()` 메소드를 사용하여 열을 선택하고 `cast()` 메소드를 사용하여 변환한 후, 다시 데이터프레임을 업데이트합니다:
```python
df = df.withColumn('columnName', df['columnName'].cast('double'))
```
위의 코드에서 'columnName'은 원하는 열의 이름으로 변경해야 합니다.
5. 변경된 데이터프레임을 출력하거나 다른 작업에 활용할 수 있습니다:
```python
df.show()
```
변경된 열을 확인하려면 `show()` 메소드를 사용하면 됩니다.
이제 데이터프레임의 열 형식을 문자열에서 실수로 변경하는 방법을 알게 되었습니다. 이러한 유용한 기술은 데이터 분석 작업을 수행하는 동안 실수 값들을 다루는 데 큰 도움이 될 것입니다.

반응형
Comments