天天看點

csv導入Hive腳本

csv導入Hive腳本
from pyspark.sql import HiveContext

hivec  = HiveContext(sc)  # 建立一個hivecontext對象用于寫執行SQL,sc為sparkcontext

# 拼接一個字段類型字元串
str_s = 'label String,'
for i in range(len(df.columns)-1):
    str_s += 'pixel%s String,' % i
# 拼接SQL語句
sql_str = "create table ml_test.decivsion ({})".format(str_s[:-1])  # 最後一個逗号需要去掉,否則報錯

hivec.sql(sql_str)  # 執行SQL

df = spark.read.csv(your hdfs path)  # 把csv讀成dataframe,第一個參數為path
## 其他參數
# schema – an optional pyspark.sql.types.StructType for the input schema.
# header:預設值是false。就是把第一行當做資料,改為false,第一行就變為字段;
# sep:預設情況下,CSV是使用英文逗号分隔的,其他分隔符号可修改此選項;
# 更多參數請查閱官方文檔
 
df.write.insertInto('ml_test.decivsion', overwrite=False)  # 将dataframe寫入到指定hive表           

複制