# 假设你的CSV文件存储在一个文件夹中,文件名即表名,文件名不包含扩展名
csv_folder <- "path/to/your/csv/folder/"
# 获取CSV文件列表
csv_files <- list.files(csv_folder, pattern = "\\.csv$", full.names = TRUE)
# 连接到Spark集群
sc <- spark_connect(master = "spark://spark_master_host:spark_master_port", version = "3.1.1", appName = "MySparkApp")
# 循环处理每个CSV文件
for (csv_file in csv_files) {
# 读取CSV文件为Spark DataFrame
df <- spark_read_csv(sc, path = csv_file)
# 提取文件名作为表名
table_name <- tools::file_path_sans_ext(basename(csv_file))
# 创建Hive表
create_table_statement <- sprintf("CREATE TABLE %s LIKE your_specified_table", table_name)
spark.sql(create_table_statement)
# 将数据插入到Hive表中
insert_statement <- sprintf("INSERT INTO TABLE %s SELECT * FROM %s", table_name, df$id)
spark.sql(insert_statement)
}
# 关闭连接
spark_disconnect(sc)
使用R将csv文件批量导入hive库,并将数据转到指定表,因为文件中的字段可能多于指定表,顺序也有可能不一致,所以需要导入两次
最新推荐文章于 2024-09-17 20:39:29 发布