spark python(pyspark) 에서 dataframe for문 돌리는 방법이 뭔가요?
조회수 1787회
아래와 같은 데이터 프레임을 그냥 for문을 적용해보니까 컬럼이 출력 됩니다. 컬럼이 아닌 db에 fetchall() 했을 때 처럼 value값들이 리스트나 튜플로 나오는 형태이면 좋겠는데 방법이 있을까요?
for i in df:
print(i)
1 답변
-
dataframe 의 collect 메서드를 사용하세요
val jsonStr = Seq("""{"id" : "1", "name": "aaaaa", "addr": "seoul", "data": 10}""", """{"id" : "2", "name": "bbbbb", "addr": "pusan", "data": 20}""", """{"id" : "3", "name": "aaaaa", "addr": "pusan", "data": 30}""", """{"id" : "4", "name": "bbbbb", "addr": "seoul", "data": 40}""", """{"id" : "5", "name": "aaaaa", "addr": "pusan", "data": 50}""", """{"id" : "6", "name": "aaaaa", "addr": "pusan", "data": 60}""", """{"id" : "7", "name": "bbbbb", "addr": "seoul", "data": 70}""") val rddData = spark.sparkContext.parallelize(jsonStr) val resultDF = spark.read.json(rddData) resultDF.collect() res14: Array[org.apache.spark.sql.Row] = Array([seoul,10,1,aaaaa], [pusan,20,2,bbbbb], [pusan,30,3,aaaaa], [seoul,40,4,bbbbb], [pusan,50,5,aaaaa], [pusan,60,6,aaaaa], [seoul,70,7,bbbbb]) resultDF.collect().foreach(i => println(i)) [seoul,10,1,aaaaa] [pusan,20,2,bbbbb] [pusan,30,3,aaaaa] [seoul,40,4,bbbbb] [pusan,50,5,aaaaa] [pusan,60,6,aaaaa] [seoul,70,7,bbbbb]
댓글 입력