gpt4 book ai didi

Java Spark 将 HIVE View 重制为 INSERT

转载 作者:可可西里 更新时间:2023-11-01 16:37:49 28 4
gpt4 key购买 nike

我有以下从 HDFS 读取 JSON 文件并使用 Spark 将其输出为 HIVE View 的 Java 代码。

package org.apache.spark.examples.sql.hive;
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.apache.spark.api.java.function.MapFunction;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Encoders;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
// $example off:spark_hive$
public class JavaSparkHiveExample {
public static void main(String[] args) {

// $example on:spark_hive$
SparkSession spark = SparkSession
.builder()
.appName("Java Spark Hive Example")
.master("local[*]")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.getOrCreate();

Dataset<Row> jsonTest = spark.read().json("/tmp/testJSON.json");
jsonTest.createOrReplaceTempView("jsonTest");
Dataset<Row> showAll = spark.sql("SELECT * FROM jsonTest");

showAll.show();
spark.stop();
}
}

为了将 JSON 插入表 test1(例如),我很难将 View 重新制作为 INSERT 语句。

非常感谢您的帮助!

最佳答案

如果你想保存到一个Hive表中,你可以这样做

showAll.write().saveAsTable("tableName") 

如果要读取本地文件给执行器,使用file://作为文件路径的前缀。注意,Spark是一个分布式进程,所以所有的executor都需要能够读取同一个位置的文件,这就是为什么HDFS通常和Spark一起使用

关于Java Spark 将 HIVE View 重制为 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48391110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com