Class

org.apache.hadoop.hbase.spark

HBaseRelation

Related Doc: package spark

Permalink

case class HBaseRelation(parameters: Map[String, String], userSpecifiedSchema: Option[StructType])(sqlContext: SQLContext) extends BaseRelation with PrunedFilteredScan with InsertableRelation with Logging with Product with Serializable

Implementation of Spark BaseRelation that will build up our scan logic , do the scan pruning, filter push down, and value conversions

sqlContext

SparkSQL context

Annotations
@Private()
Linear Supertypes
Serializable, Serializable, Product, Equals, Logging, InsertableRelation, PrunedFilteredScan, BaseRelation, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HBaseRelation
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Logging
  7. InsertableRelation
  8. PrunedFilteredScan
  9. BaseRelation
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new HBaseRelation(parameters: Map[String, String], userSpecifiedSchema: Option[StructType])(sqlContext: SQLContext)

    Permalink

    sqlContext

    SparkSQL context

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val batchNum: Int

    Permalink
  6. val blockCacheEnable: Boolean

    Permalink
  7. def buildPushDownPredicatesResource(filters: Array[Filter]): (RowKeyFilter, DynamicLogicExpression, Array[Array[Byte]])

    Permalink
  8. def buildRow(fields: Seq[Field], result: Result): Row

    Permalink
  9. def buildScan(requiredColumns: Array[String], filters: Array[Filter]): RDD[Row]

    Permalink

    Here we are building the functionality to populate the resulting RDD[Row] Here is where we will do the following: - Filter push down - Scan or GetList pruning - Executing our scan(s) or/and GetList to generate result

    Here we are building the functionality to populate the resulting RDD[Row] Here is where we will do the following: - Filter push down - Scan or GetList pruning - Executing our scan(s) or/and GetList to generate result

    requiredColumns

    The columns that are being requested by the requesting query

    filters

    The filters that are being applied by the requesting query

    returns

    RDD will all the results from HBase needed for SparkSQL to execute the query on

    Definition Classes
    HBaseRelation → PrunedFilteredScan
  10. val bulkGetSize: Int

    Permalink
  11. val cacheSize: Int

    Permalink
  12. val catalog: HBaseTableCatalog

    Permalink
  13. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  14. val clusteringCfColumnsMap: Map[String, Seq[String]]

    Permalink
  15. val configResources: String

    Permalink
  16. def createNamespaceIfNotExist(connection: Admin, namespace: String): Boolean

    Permalink
  17. def createTable(): Unit

    Permalink
  18. val darwinConf: Option[Config]

    Permalink
  19. val encoder: BytesEncoder

    Permalink
  20. val encoderClsName: String

    Permalink
  21. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  22. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  24. def getIndexedProjections(requiredColumns: Array[String]): Seq[(Field, Int)]

    Permalink
  25. def hbaseConf: Configuration

    Permalink
  26. val hbaseContext: HBaseContext

    Permalink
  27. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  28. def initializeLogIfNecessary(isInterpreter: Boolean): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  29. def insert(data: DataFrame, overwrite: Boolean): Unit

    Permalink

    Definition Classes
    HBaseRelation → InsertableRelation
  30. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  31. def isTraceEnabled(): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  32. def log: Logger

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  33. def logDebug(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  34. def logDebug(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  35. def logError(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  36. def logError(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  37. def logInfo(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  38. def logInfo(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  39. def logName: String

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  40. def logTrace(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  41. def logTrace(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  42. def logWarning(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  43. def logWarning(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  44. val maxTimestamp: Option[Long]

    Permalink
  45. val maxVersions: Option[Int]

    Permalink
  46. val minTimestamp: Option[Long]

    Permalink
  47. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  48. def needConversion: Boolean

    Permalink
    Definition Classes
    BaseRelation
  49. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  50. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  51. val parameters: Map[String, String]

    Permalink
  52. def parseRowKey(row: Array[Byte], keyFields: Seq[Field]): Map[Field, Any]

    Permalink

    Takes a HBase Row object and parses all of the fields from it.

    Takes a HBase Row object and parses all of the fields from it. This is independent of which fields were requested from the key Because we have all the data it's less complex to parse everything.

    row

    the retrieved row from hbase.

    keyFields

    all of the fields in the row key, ORDERED by their order in the row key.

  53. val schema: StructType

    Permalink

    Generates a Spark SQL schema objeparametersct so Spark SQL knows what is being provided by this BaseRelation

    Generates a Spark SQL schema objeparametersct so Spark SQL knows what is being provided by this BaseRelation

    returns

    schema generated from the SCHEMA_COLUMNS_MAPPING_KEY value

    Definition Classes
    HBaseRelation → BaseRelation
  54. def sizeInBytes: Long

    Permalink
    Definition Classes
    BaseRelation
  55. val sqlContext: SQLContext

    Permalink

    SparkSQL context

    SparkSQL context

    Definition Classes
    HBaseRelation → BaseRelation
  56. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  57. def tableName: String

    Permalink
  58. val timestamp: Option[Long]

    Permalink
  59. def transverseFilterTree(parentRowKeyFilter: RowKeyFilter, valueArray: MutableList[Array[Byte]], filter: Filter): DynamicLogicExpression

    Permalink

    For some codec, the order may be inconsistent between java primitive type and its byte array.

    For some codec, the order may be inconsistent between java primitive type and its byte array. We may have to split the predicates on some of the java primitive type into multiple predicates. The encoder will take care of it and returning the concrete ranges.

    For example in naive codec, some of the java primitive types have to be split into multiple predicates, and union these predicates together to make the predicates be performed correctly. For example, if we have "COLUMN < 2", we will transform it into "0 <= COLUMN < 2 OR Integer.MIN_VALUE <= COLUMN <= -1"

  60. def unhandledFilters(filters: Array[Filter]): Array[Filter]

    Permalink
    Definition Classes
    BaseRelation
  61. val useHBaseContext: Boolean

    Permalink
  62. val usePushDownColumnFilter: Boolean

    Permalink
  63. val useSchemaAvroManager: Boolean

    Permalink
  64. val userSpecifiedSchema: Option[StructType]

    Permalink
  65. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  66. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  67. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  68. val wrappedConf: SerializableConfiguration

    Permalink

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Logging

Inherited from InsertableRelation

Inherited from PrunedFilteredScan

Inherited from BaseRelation

Inherited from AnyRef

Inherited from Any

Ungrouped