如何使用Spark数据帧将csv数据加载到配置单元?

时间:2017-02-16 08:02:53

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

我正在尝试将数据从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。我对数据库提供的Spark-csv有一些了解 请告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

on 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)

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