거인을 읽다
신영준.고영성 엮음 / 상상스퀘어 / 2025년 10월
평점 :
장바구니담기


유튜브에 광고를 하길래 뭔가 대단한 책인 줄 알고 검색 해 봤더니, 자기가 쓴 책을 광고하고 있다.
작가의 생각은 하나도 없고, 한 페이지에 3개의 명언을 짜깁기한 것을 책이라고 하다니... 말문이 막힌다.

댓글(1) 먼댓글(0) 좋아요(9)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo
 
 
데이터인사이트 2026-08-18 17:10   좋아요 0 | 댓글달기 | URL
from pyspark.sql import SparkSession
from datetime import datetime, timedelta
import pandas as pd
import base64
import os
from IPython.display import HTML, display

# =========================================================
# 1. Spark Session
# =========================================================
spark = SparkSession.builder
.master(˝yarn˝)
.config(˝spark.submit.deployMode˝, ˝cluster˝)
.appName(˝download_enc_meta_tables_csv˝)
.enableHiveSupport()
.getOrCreate()

print(f˝Spark Version: {spark.version}˝)

spark.catalog.clearCache()
spark.sql(˝USE c_dev_mfr˝)
print(˝current database =˝, spark.catalog.currentDatabase())

# =========================================================
# 2. 다운로드 대상 테이블
# =========================================================
tables = [
# ˝c_dev_mfr.enc_col_val_d˝
˝c_dev_mfr.enc_tab_d˝
,˝c_dev_mfr.enc_col_d˝

]

# =========================================================
# 3. CSV 생성 및 다운로드 링크 출력 함수
# =========================================================
from datetime import datetime, timedelta
import os
import base64
from IPython.display import display, HTML

from datetime import datetime, timedelta
import os
import base64
import pandas as pd
from IPython.display import display, HTML

from datetime import datetime, timedelta
import os
import base64
import pandas as pd
from IPython.display import display, HTML

from datetime import datetime, timedelta
import os
import base64
import pandas as pd
from IPython.display import display, HTML

def export_table_to_csv_and_link(table_name: str):
˝˝˝
Spark 테이블을 Pandas로 변환하여 CSV 파일 생성 후
다운로드 링크를 출력한다.
(reg_dttm, upd_dttm 컬럼 제외)
˝˝˝
simple_name = table_name.split(˝.˝)[-1]

print(˝n˝ + ˝=˝ * 100)
print(f˝[EXPORT START] {table_name}˝)
print(˝=˝ * 100)

# 데이터 조회
df = spark.table(table_name)

# 컬럼 수 / row 수 확인
row_cnt = df.count()
print(f˝row count = {row_cnt}˝)

# ✅ 제외할 컬럼 리스트
exclude_columns = [‘reg_dttm‘, ‘upd_dttm‘]

# 제외 컬럼 제거
available_columns = [col for col in df.columns if col not in exclude_columns]
df = df.select(available_columns)

print(f˝✓ 제외된 컬럼: {exclude_columns}˝)
print(f˝✓ 선택된 컬럼 수: {len(available_columns)}˝)

# Pandas 변환
pdf = df.toPandas()

# 파일명 생성 (KST 기준)
now_str = (datetime.utcnow() + timedelta(hours=9)).strftime(˝%Y%m%d_%H%M%S˝)
file_name = f˝{simple_name}_{now_str}.csv˝

# CSV 저장
pdf.to_csv(file_name, index=False, encoding=˝utf-8-sig˝)
abs_path = os.path.abspath(file_name)

print(f˝CSV 파일 생성 완료: {abs_path}˝)

# 다운로드 링크 생성
with open(file_name, ˝rb˝) as f:
data = f.read()

b64 = base64.b64encode(data).decode()
html = f‘<a download=˝{file_name}˝ href=˝data:text/csv;base64,{b64}˝>[클릭해서 {file_name} 다운로드]</a>‘

display(HTML(html))

print(f˝[EXPORT END] {table_name}˝)




# =========================================================
# 4. 실행
# =========================================================
for t in tables:
export_table_to_csv_and_link(t)

print(˝n˝ + ˝=˝ * 100)
print(˝enc_tab_d / enc_col_d CSV 생성 및 다운로드 링크 출력 완료˝)
print(˝=˝ * 100)