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]
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)