https://spark.apache.org/docs/latest/sql-getting-started.html#getting-started
공식문서를 참고하여 작성하였습니다.
1. Starting Point : SparkSession
먼저 java를 먼저 설치하고, java/bin 경로를 환경변수로 설정해야한다.
- java 설치
셋팅을 완료하였다면 아래의 코드로 Session을 생성해준다.
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
2. Creating DataFrames
SparkSession을 통해 기존의 RDD, Hive table, Spark data sources 에서 DataFrames를 만들어준다.
라고 설명이 되어있지만 복잡하게 생각할거없이, 아래의 코드로 내가 가진 json파일을 읽을 수 있다.
# JSON 파일 경로
root_path = "./aihub/13.한국어글자체/"
textwild_json = root_path+"04._Text_in_the_wild_230209_add/textinthewild_data_info.json"
df = spark.read.json(textwild_json, multiLine=True)
df.printSchema()
#결과
root
|-- annotations: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- attributes: struct (nullable = true)
| | | |-- class: string (nullable = true)
| | |-- bbox: array (nullable = true)
| | | |-- element: long (containsNull = true)
| | |-- id: string (nullable = true)
| | |-- image_id: string (nullable = true)
| | |-- text: string (nullable = true)
|-- images: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- file_name: string (nullable = true)
| | |-- height: long (nullable = true)
| | |-- id: string (nullable = true)
| | |-- type: string (nullable = true)
| | |-- width: long (nullable = true)
|-- info: struct (nullable = true)
| |-- date_created: string (nullable = true)
| |-- name: string (nullable = true)
|-- licenses: array (nullable = true)
| |-- element: string (containsNull = true)
내가 가진 json파일은 복잡한 구조를 띄고있어서 아래에 tutorial에 나와있는 show()기능은 별로 효율적이지 못하지만 위처럼 스키마를 보기엔 편리한 기능을 가지고 있다.
# spark is an existing SparkSession
df = spark.read.json("examples/src/main/resources/people.json")
# Displays the content of the DataFrame to stdout
df.show()
# +----+-------+
# | age| name|
# +----+-------+
# |null|Michael|
# | 30| Andy|
# | 19| Justin|
# +----+-------+
'Programming > python' 카테고리의 다른 글
[파이썬] Python에서 XML 파일 다루는법 - XPath에 대해서 알아보자. (0) | 2024.05.16 |
---|---|
Anaconda없이 Python 가상환경 만들기 (0) | 2024.04.08 |
대용량 JSON파일 처리하기. python ijson (0) | 2024.01.04 |
PyCharm에서 anaconda 가상환경 구축하기 (0) | 2023.11.17 |
pip으로 opencv version 업데이트/재설치하기 (0) | 2023.11.08 |