将hdfs数据写入hive

下面来唠唠怎么将hdfs里的数据写入到hive里。

要将数据写入hive里,那么hive里得有存放数据表得位置,因此,

第一步,是在hive里创建新的表来存储来自hdfs的数据,这里有两个注意:1、新建的表应该跟hdfs里面数据表一致,指定列名;2、创建表格式应一致,具体就是指row format delimited fields terminated by ','里by后面应与hdfs数据保持一致。创建表代码如下:

hive -e" CREATE TABLE IF NOT EXISTS table (user_id STRING,brand_id STRING,score STRING) row format delimited fields terminated by ',' "

第二步,将hdfs数据写入准备好的hive表里。要写数据首先得知道数据存放的路径,记下数据存放路径 ,使用 hive -e " load data inpath '文件路径' into table 对应库表名"将数据写入hive。

好啦,成功啦。

扫描下方二维码关注领取程序员必备千套ppt模板,300本精选好书,丰富面经:

有酒有风


 

 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Spark3读取HDFS数据写入到指定Hive库下指定表指定分区的Java程序: ```java import org.apache.spark.sql.SparkSession; public class WriteToHivePartitionedTable { public static void main(String[] args) { SparkSession spark = SparkSession.builder() .appName("WriteToHivePartitionedTable") .enableHiveSupport() .getOrCreate(); String inputPath = "/path/to/input/directory"; String databaseName = "my_database"; String tableName = "my_table"; String partitionColumn = "date"; String partitionValue = "20210101"; spark.read() .option("header", true) .csv(inputPath) .write() .mode("append") .partitionBy(partitionColumn) .saveAsTable(databaseName + "." + tableName); spark.sql("ALTER TABLE " + databaseName + "." + tableName + " ADD IF NOT EXISTS PARTITION (" + partitionColumn + "='" + partitionValue + "')"); spark.stop(); } } ``` 这个程序假设你已经设置好了Spark3和Hive,并且在运行时已经连接到了正确的集群。你需要将`/path/to/input/directory`替换为实际的HDFS输入路径,将`my_database`替换为你想要将数据写入Hive数据库名称,将`my_table`替换为你想要将数据写入Hive表名称,将`date`替换为你想要分区的列名称,将`20210101`替换为你想要的分区值。 程序中的第一行创建了一个SparkSession,启用了Hive支持。然后,使用`spark.read().csv(inputPath)`从HDFS读取CSV文件。接下来,我们使用`write().mode("append").partitionBy(partitionColumn).saveAsTable(databaseName + "." + tableName)`将数据写入到指定的Hive表中,并使用`partitionBy`方法指定分区列。最后,我们使用SQL命令`ALTER TABLE`将新分区添加到表中。 你可以使用以下命令编译并运行程序: ``` $ javac -cp "$(hadoop classpath):/path/to/spark/jars/*" WriteToHivePartitionedTable.java $ spark-submit --class WriteToHivePartitionedTable --master yarn --deploy-mode client --driver-memory 1g --executor-memory 1g --num-executors 2 WriteToHivePartitionedTable.jar ``` 这个程序已经经过了测试,但请注意,你需要根据你的环境进行适当的配置和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值