2016-02-05 2 views
2

Я хочу сохранить мой обрабатываются РДДОМ в тузде таблицу для этого я использую SparkDataFrame, но я получаю follwing ошибкине может подключиться MySQLDb через питон искру

py4j.protocol.Py4JJavaError: An error occurred while calling o216.jdbc. 
: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/student?user=root&password=root. 

я добавил MySQL-баночку sparkshell

spark-shell -driver-class-path /path-to-mysql-jar/mysql-connectorjava-5.1.38-bin.jar.

from pyspark import SparkContext 
    from datetime import datetime 
    import os 
    import sys 
    from pyspark.sql import SQLContext, Row 
    sqlContext = SQLContext(sc) 
    file1 = sc.textFile("/home/hadoop/text1").cache() 
    file2 = sc.textFile("/home/hadoop/text2").cache() 
    file3 = file1.union(file2).coalesce(1).map(lambda line: line.split(',')) 
    file1.unpersist() 
    file2.unpersist() 
    result = file3.map(lambda x: (x[0]+', '+x[1],float(x[2]))).reduceByKey(lambda a,b:a+b).sortByKey('true').coalesce(1) 
    result = result.map(lambda x:x[0]+','+str(x[1]))\ 
    schema_site = sqlContext.createDataFrame(result) 
    schema_site.registerTempTable("table1") 
    mysql_url="jdbc:mysql://localhost:3306/test?user=root&password=root&driver=com.mysql.jdbc.Driver" 
    schema_site.write.jdbc(url=mysql_url, table="table1", mode="append") 

я использую СПАРК СПАРК-1.5.0-бен-hadoop2.4

также установки улья metastore.

Как я могу загрузить результат RDD в таблицу Mysql.

входной файл

file1 contents are 

    1234567 65656545 12 

    1234567 65675859 11 

    file2 contents are, 

    1234567 65656545 12 

    1234567 65675859 11 

and the resultnat RDD is like 

1234567 65656545 24 

1234567 65675859 22 

i created the table in mysql with three colunm, 

std_id std_code std_res 

и я хочу выходной таблицы, как,

std_id std_code std_res 

    1234567 65656545 24 

    1234567 65675859 24 
+0

Похожий вопрос здесь: http://stackoverflow.com/a/31478590/2308683 –

ответ

1

При переходе в JDBC драйверов или других зависимостей ява к вашей искрового программы, вы должны использовать --jars аргумент.

--jars                   список разделенных запятыми местных банках, чтобы включить на водителя и к классам исполнителя.

2

решаемые, добавив --jar/путь/к/MySQL/разъем для искру представить, как,

./bin/spark-submit --jars lib/mysql-connector-java-5.1.38-bin.jar sample.py 
+0

Любая идея, как это сделать в PyCharm? –

+0

Процесс такой же. Просто создайте свой .py-скрипт и укажите путь –