如何用pyspark读取大数据平台中的hive数据表

# 建立与数据库的连接
# engine = create_engine('postgresql+psycopg2://bda:szGRID@2927@10.150.37.127:5432/DCJL')
conf = SparkConf().setAppName("PandasSQL").set("spark.yarn.maxAppAttempts", 1)
# 从数据库获取提取的数据
# NXGL_TRAIN = pd.read_sql_table(table_name='nxglzb',con=engine,schema='sjjs')
sc = SparkContext(conf=conf)
sqlContext = HiveContext(sc)
# pytest  改为你的项目空间名称
sqlContext.sql("use emr_pbfhyc")
# 将 emr中的表 decimal 类型 转成double类型
df = sqlContext.table("zdl_tq_test")
for i in range(len(df.columns)):
    if ("DecimalType" in str(df.schema.fields[i].dataType)):
        df = df.withColumn(str(df.columns[i]), df[str(df.columns[i])].cast('float'))
        # print(df.dtypes)
# 将 emr中的表 转成 pandas
zdl_tq_week = df.toPandas()
_SPARK_HOST = "spark://spark-master:7077"
    _APP_NAME = "test"
    spark_session = SparkSession.builder.master(_SPARK_HOST).appName(_APP_NAME).getOrCreate()
    hive_context = HiveContext(spark_session)

    sql_KHZJ="SELECT T1.KHZJBS AS KHZJBS,T1.KHBH AS KHBH,T1.ZJLXDM AS ZJLXDM,T1.ZJMC AS ZJMC,T1.ZJHM AS ZJHM,T1.LXRBS AS LXRBS,T1.CJSJ AS CJSJ,T1.ZJZTDM AS ZJZTDM FROM yxxt.KH_KHZJ T1"
    
    KHZJ = hive_context.sql(sql_KHZJ)

在网上自查看到这两种,但是有点不明白。刚刚转行做数据分析,之前没接触过大数据平台。

我希望是能够在python脚本中,用sql语句读取大数据平台(dtdream)中的hive数据表。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。