本教程提供了使用 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
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._
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()