def main()

in spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/example/datasources/DataType.scala [84:171]


  def main(args: Array[String]) {
    val sparkConf = new SparkConf().setAppName("DataTypeExample")
    val sc = new SparkContext(sparkConf)
    val sqlContext = new SQLContext(sc)

    import sqlContext.implicits._

    def withCatalog(cat: String): DataFrame = {
      sqlContext.read
        .options(Map(HBaseTableCatalog.tableCatalog -> cat))
        .format("org.apache.hadoop.hbase.spark")
        .load()
    }

    // test populate table
    val data = (0 until 32).map { i => IntKeyRecord(i) }
    sc.parallelize(data)
      .toDF
      .write
      .options(Map(HBaseTableCatalog.tableCatalog -> cat, HBaseTableCatalog.newTable -> "5"))
      .format("org.apache.hadoop.hbase.spark")
      .save()

    // test less than 0
    val df = withCatalog(cat)
    val s = df.filter($"col0" < 0)
    s.show()
    if (s.count() != 16) {
      throw new UserCustomizedSampleException("value invalid")
    }

    // test less or equal than -10. The number of results is 11
    val num1 = df.filter($"col0" <= -10)
    num1.show()
    val c1 = num1.count()
    println(s"test result count should be 11: $c1")

    // test less or equal than -9. The number of results is 12
    val num2 = df.filter($"col0" <= -9)
    num2.show()
    val c2 = num2.count()
    println(s"test result count should be 12: $c2")

    // test greater or equal than -9". The number of results is 21
    val num3 = df.filter($"col0" >= -9)
    num3.show()
    val c3 = num3.count()
    println(s"test result count should be 21: $c3")

    // test greater or equal than 0. The number of results is 16
    val num4 = df.filter($"col0" >= 0)
    num4.show()
    val c4 = num4.count()
    println(s"test result count should be 16: $c4")

    // test greater than 10. The number of results is 10
    val num5 = df.filter($"col0" > 10)
    num5.show()
    val c5 = num5.count()
    println(s"test result count should be 10: $c5")

    // test "and". The number of results is 11
    val num6 = df.filter($"col0" > -10 && $"col0" <= 10)
    num6.show()
    val c6 = num6.count()
    println(s"test result count should be 11: $c6")

    // test "or". The number of results is 21
    val num7 = df.filter($"col0" <= -10 || $"col0" > 10)
    num7.show()
    val c7 = num7.count()
    println(s"test result count should be 21: $c7")

    // test "all". The number of results is 32
    val num8 = df.filter($"col0" >= -100)
    num8.show()
    val c8 = num8.count()
    println(s"test result count should be 32: $c8")

    // test "full query"
    val df1 = withCatalog(cat)
    df1.show()
    val c_df = df1.count()
    println(s"df count should be 32: $c_df")
    if (c_df != 32) {
      throw new UserCustomizedSampleException("value invalid")
    }
  }