【问题标题】:How I can load csv data into hive using Spark dataframes?如何使用 Spark 数据帧将 csv 数据加载到配置单元中?
【发布时间】:2017-02-16 08:02:53
【问题描述】:

我正在尝试将数据从 csv 文件加载到 Hive。我正在使用 Spark 的 JAVA API 来执行此操作。我想知道如何使用 spark 数据帧在 hive 中加载数据。
以下是我尝试使用 JSON 制作的内容:

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SQLContext;
public class first {
public static void main (String[] args)
{
    String inputFileName = "samples/big.txt" ;
    String outputDirName = "output" ;

    SparkConf conf = new SparkConf().setAppName("org.sparkexample.WordCount").setMaster("local");
    JavaSparkContext context = new JavaSparkContext(conf);
    @SuppressWarnings("deprecation")
    SQLContext sc = new SQLContext(context);
    DataFrame input = sc.jsonFile(inputFileName);
    input.printSchema();
}
}

但不知道如何使用 csv 制作它。我对 databricks 提供的 Spark-csv 有一些想法。
请让我知道我该怎么做。

【问题讨论】:

  • 您使用的是什么版本的 spark?阅读 csv 或将生成的数据框放入 hive 也是您的问题吗?
  • 您可以使用 spark-csv 包将 csv 文件读取到 dataframe 中,然后使用它将其加载到 hive table 中。 github.com/databricks/spark-csv
  • @AssafMendelson Spark 版本 1.6.0
  • @RajatMishra 我也在尝试。但是不明白问题所在。第一次使用 Spar 和 java。一直在和 Scala 打交道,但看不懂 java。
  • 对不起,我使用的是 2.1.0 版本

标签: java csv hadoop apache-spark spark-dataframe


【解决方案1】:

在 spark 2.x.x 上内置了 csv(不需要包) 试着这样读:

SparkSession spark = SparkSession
.builder()
.appName("org.sparkexample.WordCount")
.master("local[*]") .
.enableHiveSupport()
.getOrCreate();
DataFrame input = spark.read.csv(inputFileName)

您还可以添加选项,例如:

DataFrame input = spark.read.option("header","true").csv(inputFileName)

将第一行视为标题并相应地给出列名

【讨论】:

  • 这样我可以写到蜂巢吗?实际上,现在阅读是一个与写作斗争的问题。
  • 你可以试试stackoverflow.com/questions/40122201/…。我没有配置配置单元,所以我无法检查自己
猜你喜欢
  • 2018-07-27
  • 2016-10-11
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
  • 2018-04-08
  • 1970-01-01
相关资源
最近更新 更多