mvn clean scala:compile compile install

Maven依赖

Spark-shell用户指南

  1. spark-shell --jars spark-iotdb-connector-0.12.5.jar,iotdb-jdbc-0.12.5-jar-with-dependencies.jar
  2. import org.apache.iotdb.spark.db._
  3. val df = spark.read.format("org.apache.iotdb.spark.db").option("url","jdbc:iotdb://127.0.0.1:6667/").option("sql","select * from root").load
  4. df.printSchema()
  5. df.show()

模式推断

以下TsFile结构为例:TsFile模式中有三个度量:状态,温度和硬件。 这三种测量的基本信息如下:

  • d1:root.ln.wf01.wt01
  • d2:root.ln.wf02.wt02

宽(默认)表形式如下:

在宽和窄表之间转换

  • 从宽到窄
  1. import org.apache.iotdb.spark.db._
  2. val wide_df = spark.read.format("org.apache.iotdb.spark.db").option("url", "jdbc:iotdb://127.0.0.1:6667/").option("sql", "select * from root where time < 1100 and time > 1000").load
  3. val narrow_df = Transformer.toNarrowForm(spark, wide_df)
  • 从窄到宽

Java用户指南

  1. import org.apache.spark.sql.Dataset;
  2. import org.apache.spark.sql.Row;
  3. import org.apache.spark.sql.SparkSession;
  4. import org.apache.iotdb.spark.db.*
  5. public class Example {
  6. public static void main(String[] args) {
  7. .builder()
  8. .appName("Build a DataFrame from Scratch")
  9. .getOrCreate();
  10. Dataset<Row> df = spark.read().format("org.apache.iotdb.spark.db")
  11. .option("url","jdbc:iotdb://127.0.0.1:6667/")
  12. .option("sql","select * from root").load();
  13. df.printSchema();
  14. df.show();
  15. Dataset<Row> narrowTable = Transformer.toNarrowForm(spark, df)
  16. narrowTable.show()
  17. }

写数据到IoTDB

  1. numPartition参数是用来设置分区数,会在写入数据之前给dataframe进行重分区。每一个分区都会开启一个session进行数据的写入,来提高并发数。