логическое соединение pyspark для sql - PullRequest
0 голосов
/ 13 февраля 2019

Я использую spark 1.6 на 3 виртуальных машинах (т.е. 1x master; 2x slave), все с 8 ядрами, извлеките данные из моей базы данных Vertica, чтобы работать с ней, приведенный ниже запрос работает хорошо на vertica db, но его нетSpark DataFrames не работают с pyspark и поддерживают предикатную передачу с исходниками JDBC, но термин предикат используется в строгом смысле SQL.Это означает, что охватывает только предложение WHERE.Более того, похоже, что оно ограничено логическим соединением (нет IN и OR, я боюсь) и простыми предикатами, оно в любом случае выполнить запрос ниже как есть?

    url = "*******"
    properties = {
        "user": "*****",
        "password": "*******",
        "driver": "com.vertica.jdbc.Driver"
    }
df = (sqlContext.read.format("jdbc")
.options(url=url, dbtable='(SELECT min(date(time_stamp)) mindate,max(date(time_stamp)) maxdate,count (distinct date(time_stamp)) noofdays, subscriber, server_hostname, sum(bytes_in) DL, sum(bytes_out) UL, sum(connections_out) conn from traffic.stats where \$CONDITIONS and SUBSCRIBER like '41601%' and date(time_stamp) between '2019-01-25' and '2019-01-29'and signature_service_category = 'Web Browsing' and (signature_service_name = 'SSL v3' or signature_service_name = 'HTTP2 over TLS') and server_hostname not like '%.googleapis.%' and server_hostname not like '%.google.%' and server_hostname <> 'doubleclick.net'  and server_hostname <> 'youtube.com'  and server_hostname <> 'googleadservices.com'  and server_hostname <> 'app-measurement.com' and server_hostname <> 'gstatic.com' and server_hostname <> 'googlesyndication.com' and server_hostname <> 'google-analytics.com'  and server_hostname <> 'googleusercontent.com'  and server_hostname <> 'ggpht.com'  and server_hostname <> 'googletagmanager.com' and server_hostname is not null group by subscriber, server_hostname)temp',
         **properties)
                .load()).show()
...