Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法在pyspark中创建数据帧并将其写入配置单元表_Python_Apache Spark_Hive_Pyspark - Fatal编程技术网

Python 无法在pyspark中创建数据帧并将其写入配置单元表

Python 无法在pyspark中创建数据帧并将其写入配置单元表,python,apache-spark,hive,pyspark,Python,Apache Spark,Hive,Pyspark,我正在尝试在pyspark中创建一个数据帧,然后将其作为配置单元表写入,然后将其读回,但它不起作用 sqlContext = HiveContext(sc) hive_context = HiveContext(sc) #Initialize Hive #load the control table cntl_dt = [('2016-04-30')] rdd = sc.parallelize(cntl_dt) row_cntl_dt = rdd.map(lambda x: Row(loa

我正在尝试在pyspark中创建一个数据帧,然后将其作为配置单元表写入,然后将其读回,但它不起作用

sqlContext = HiveContext(sc)

hive_context = HiveContext(sc) #Initialize Hive

#load the control table 
cntl_dt = [('2016-04-30')]
rdd = sc.parallelize(cntl_dt)
row_cntl_dt = rdd.map(lambda x: Row(load_dt=x[0]))
df_cntl_dt = sqlContext.createDataFrame(row_cntl_dt)
df_cntl_dt.write.mode("overwrite").saveAsTable("schema.cntrl_tbl")
load_dt  = hive_context.sql("select load_dt  from schema.cntrl_tbl" ).first()['load_dt'];
print (load_dt)
印刷品:2

我预计:2016-12-31这是因为:

cntl_dt = [('2016-04-30')]
不是单个元素
元组的有效语法。引号将被忽略,结果将与以下内容相同:

['2016-04-30']

将提供:

Row(load_dt='2')
使用:

此外,您还混合了不同的上下文(
SQLContext
HiveContext
),这通常是个坏主意(在任何最新的Spark版本中都不应该使用这两种方法)

Row(load_dt='2')
cntl_dt = [('2016-04-30', )]