Pyspark 在配置单元中将数据从一个表加载到另一个表

Pyspark 在配置单元中将数据从一个表加载到另一个表,pyspark,hive,apache-spark-sql,hiveql,create-table,Pyspark,Hive,Apache Spark Sql,Hiveql,Create Table,我在配置单元中有一个名为a.table1的表,它有id、name和class列,并且完全加载了数据 id name class 1 a 1 11 b 14 我想从a.table1创建一个新的表b.table2,该表包含id、name、class和status字段。 当id小于10时,类和状态将具有相同的值,否则值将为0 id name class status 1 a 1 1 11 b 14 0 我正在做的是创建一个表: CREAT

我在配置单元中有一个名为a.table1的表,它有id、name和class列,并且完全加载了数据

id name class 
1   a     1
11  b     14
我想从a.table1创建一个新的表b.table2,该表包含id、name、class和status字段。 当id小于10时,类和状态将具有相同的值,否则值将为0

id name class status
1   a     1     1
11  b     14    0
我正在做的是创建一个表:

CREATE TABLE IF NOT EXISTS b.table2(
id BIGINT,
name string,
class int,
status int
)
如何加载表中的内容?还是有更好的方法


spark = SparkSession.builder.enableHiveSupport().getOrCreate()
sc = spark.sparkContext
sqlContext = spark._wrapped



只需选择并将结果插入表2中:

insert into b.table2 (
    select *, case when id < 10 then class else 0 end as status from a.table1
);
将在单个语句中创建和加载表:

CREATE TABLE table2 AS
 select id, name, class, status 
   from table1;