快速开始

本教程提供了使用 CarbonData 的快速入门介绍。

前置条件

  • 编译和安装 Carbondata.

  • 使用以下命令创建一个 sample.csv 文件。 将数据加载到 CarbonData 需要使用到这个 CSV 文件。

    cd carbondata
    cat > sample.csv << EOF
    id,name,city,age
    1,david,shenzhen,31
    2,eason,shenzhen,27
    3,jarry,wuhan,35
    EOF
    
  • 使用 Spark Shell 2.1 版本进行交互式分析

    Apache Spark Shell 提供了一种学习 API 的简单方法,它也是一种交互式分析数据的强大工具。 请访问Apache Spark 文档了解更多关于 Spark Shell。

    基本步骤

    在 Spark 安装目录下使用以下命令启动 Spark Shell:

    ./bin/spark-shell --jars <carbondata assembly jar path>
    

    注意: Assembly jar 会在编译 CarbonData 之后可用,可以从./assembly/target/scala-2.1x/carbondata_xxx.jar 路径下复制。

    之后,SparkSession 可以通过访问 spark;而 SparkContext 可以通过访问 sc

    为了创建 CarbonSession,我们必须按照以下方式进行明确地配置:

  • 引入下面的类 :
  • import org.apache.spark.sql.SparkSession
    import org.apache.spark.sql.CarbonSession._
    
  • 创建 CarbonSession :
  • val carbon = SparkSession.builder().config(sc.getConf)
                 .getOrCreateCarbonSession("<hdfs store path>")
    

    注意: 默认情况下,Metastore 位置指向 ../carbon.metastore, 用户可以将自己的 metastore 位置提供给 CarbonSession,比如:SparkSession.builder().config(sc.getConf) .getOrCreateCarbonSession("<hdfs store path>", "<local metastore path>")

    执行查询

    创建一个表
    scala>carbon.sql("CREATE TABLE
                            IF NOT EXISTS test_table(
                                      id string,
                                      name string,
                                      city string,
                                      age Int)
                           STORED BY 'carbondata'")
    
    将数据加载到表中
    scala>carbon.sql("LOAD DATA INPATH '/path/to/sample.csv'
                      INTO TABLE test_table")
    

    注意: 上面的语句中请指定 sample.csv 文件的真实路径。 如果你遇到 "tablestatus.lock" 问题, 请访问故障排除

    从表中查询数据
    scala>carbon.sql("SELECT * FROM test_table").show()
    
    scala>carbon.sql("SELECT city, avg(age), sum(age)
                      FROM test_table
                      GROUP BY city").show()