Hive에 테이블이 있는 경우, 파일로 저장하고 싶을때 ,
, ,
NULL
처리를 쉘에서 처리하는게 좋다.
아래 sql
에 내가 원하고자 하는 쿼리를 입력하면 테이블을 로컬로 가져올 수 있음
import sys
import time
import datetime
import os
import logging
try:
from subprocess import getstatusoutput
except ImportError:
from commands import getstatusoutput
import argparse
logger = None
def get_data(args):
if not os.path.exists(args.output_path):
os.makedirs(args.output_path)
output_path = os.path.join(args.output_path, 'data.txt')
cmd1 = """<sql> sed 's/,/ /g; s/NULL//g' > %s""" % (args.input_table, output_path)
print (cmd1)
print ("start getting train_data at %s" % datetime.datetime.now())
status, output = getstatusoutput(cmd1)
print ("status %s output %s" % (status, output))
if status == 0:
print("finished!")
print("finish getting train_data at %s" % datetime.datetime.now())
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('--input_table', required=True)
parser.add_argument('--output_path', required=True)
# parser.add_argument('--mode', required=True, choices=["train", "pred"])
args, _ = parser.parse_known_args()
return args, parser
if __name__ == '__main__':
args, parser = parse_args()
print (args.output_path)
try:
get_data(args)
except Exception as e:
print (e)
'우리는 개발자 > Data Science' 카테고리의 다른 글
[Python] datetime timedelta를 이용해 날짜 더하고 빼는 방법 (0) | 2019.09.07 |
---|---|
[Python] Python3 SimpleHTTPServer, http.server (0) | 2019.09.07 |
[Pandas] DataFrame Groupby Apply UDF 작성 (0) | 2019.09.06 |
[Pandas] DataFrame apply udf를 이용할때 여러개의 컬럼을 넘기고 받는 방법 (multiple columns apply udf) (0) | 2019.09.06 |
[Pandas] DataFrame apply 함수를 Paralleization 하는 방법 (병렬처리 하는 방법) (1) | 2019.09.06 |