반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- list
- django
- math
- array
- SQL
- Java
- c#
- 파이썬
- gas
- Redshift
- Mac
- GIT
- Apache
- Kotlin
- matplotlib
- PySpark
- Python
- Tkinter
- Google Excel
- Google Spreadsheet
- PANDAS
- dataframe
- Excel
- string
- hive
- Github
- numpy
- google apps script
- PostgreSQL
Archives
- Today
- Total
달나라 노트
Python pyspark : columns (spark dataframe의 column 리스트 반환) 본문
Python/Python pyspark
Python pyspark : columns (spark dataframe의 column 리스트 반환)
CosmosProject 2021. 5. 19. 05:46728x90
반응형
spark dataframe의 columns 속성을 이용하면 spark dataframe에 있는 column들의 list를 얻을 수 있습니다.
(pandas dataframe의 columns랑 비슷합니다.)
from pyspark.sql import SparkSession
import pandas as pd
spark = SparkSession.builder.getOrCreate()
df_test = pd.DataFrame({
'a': [1, 2, 3],
'b': [10.0, 3.5, 7.315],
'c': ['apple', 'banana', 'tomato']
})
df_spark = spark.createDataFrame(df_test)
list_columns = df_spark.columns
print(list_columns)
-- Result
['a', 'b', 'c']
columns attribute를 이용하여 추출한 column list와 select, col을 이용하여 원하는 column을 추출해낼 수 있습니다.
from pyspark.sql import SparkSession
from pyspark.sql.function import col
import pandas as pd
spark = SparkSession.builder.getOrCreate()
df_test = pd.DataFrame({
'a': [1, 2, 3],
'b': [10.0, 3.5, 7.315],
'c': ['apple', 'banana', 'tomato']
})
df_spark = spark.createDataFrame(df_test)
list_columns = df_spark.columns
print(list_columns)
df_new_1 = df_spark.select( # 1
col(list_columns[0]),
col(list_columns[1])
)
df_new_1.show()
df_new_2 = df_spark.select( # 2
df_spark.list_columns[0],
df_spark.list_columns[1]
)
df_new_2.show()
-- Result
['a', 'b', 'c']
+---+-----+
| a| b|
+---+-----+
| 1| 10.0|
| 2| 3.5|
| 3|7.315|
+---+-----+
AttributeError: 'DataFrame' object has no attribute 'list_columns'
1. select와 col을 이용하여 list_columns에 있는 a, b 컬럼을 추출하는 과정입니다.
이것은 Error없이 실행됩니다.
2. 다만 select에는 col없이 df_spark.a 이런식으로 원하는 column을 추출할 수도 있는데,
df_spark.list_columns[0] 처럼 적게되면 list_columns[0]을 a로 인식하여 df_spark.a와 동일한 효과를 갖게 되는 것이 아닙니다.
df_spark.~~~는 df_spark에 존재하는 속성을 이용하겠다는 의미이므로 list_columns라는 속성을 찾게 됩니다.
하지만 spark dataframe에는 list_columns라는 속성이 없으므로 AttributeError가 발생하게됩니다.
728x90
반응형
'Python > Python pyspark' 카테고리의 다른 글
Python pyspark : write, saveAsTable (spark dataframe을 database의 table에 삽입하기) (0) | 2021.05.19 |
---|---|
Python pyspark : sql (spark에서 hive 쿼리 돌리기) (0) | 2021.05.19 |
Python pyspark : filter (spark dataframe filtering) (0) | 2021.05.19 |
Python pyspark : withColumn (spark dataframe에 새로운 컬럼 추가하기) (0) | 2021.05.19 |
Python pyspark : select (Dataframe에서 column 추출하기) (0) | 2021.05.19 |
Comments