2016-11-29 27 views
3

我想知道这究竟工程时,从凤凰过滤,加载表

df = sqlContext.read \ 
      .format("org.apache.phoenix.spark") \ 
      .option("table", "TABLE") \ 
      .option("zkUrl", "10.0.0.11:2181:/hbase-unsecure") \ 
      .load() 

如果这是加载整个表或将推迟装载知道是否将被应用的过滤。

在第一种情况下,如何告诉phoenix在加载spark数据框之前过滤表格?

谢谢

回答

3

直到您执行需要它的操作时才加载数据。所有应用于中间的滤镜:

df.where($"foo" === "bar").count 

如果可能,将被Spark按下。您可以通过运行来查看谓词下推的结果explain()

+0

我知道它是用于其他类型的负载,但是现在不能在负载之前放置一个过滤器:S。 (我与pyspark和phoenix) –

+0

@PabloCastilla如果你写'spark。(..)。load()。其中​​(...)。count',那么Spark将自动执行谓词下推。你不必处理它 –

+1

你是完全正确的。我已经用explain()函数看过了。 谢谢! –