2017-10-13 17 views
0

私はsparkバージョン2.2.0、& Python 2.7を使用しています。データを取得しようとしているpyspark &を使用してBigSQLに接続しています。続いて、私は分散オブジェクトをスパーク酸洗いすることはできません私は、エラーメッセージにPysparkエラー+メソッド__getnewargs __([])が存在しません

Py4JError: An error occurred while calling o79.__getnewargs__. Trace: 
py4j.Py4JException: Method __getnewargs__([]) does not exist 
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) 
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326) 
    at py4j.Gateway.invoke(Gateway.java:272) 
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 
    at py4j.commands.CallCommand.execute(CallCommand.java:79) 
    at py4j.GatewayConnection.run(GatewayConnection.java:214) 
    at java.lang.Thread.run(Thread.java:748) 

答えて

2

を取得していたコードを実行した後

import cPickle as cpick 
import numpy as np 
import pandas as pd 
import time 
import sys 
from pyspark.sql.session import SparkSession 
spark = SparkSession.builder.getOrCreate() 
spark_train_df = spark.read.jdbc("jdbc:db2://BigSQL URL:Port:sslConnection=true;","Schema.Table", 
      properties={"user": "my userid", 
         "password": "password", 
         'driver' : 'com.ibm.db2.jcc.DB2Driver'}) 
spark_train_df.registerTempTable('data_table') 
# query to get columns necessary to create indexes 
sql = "select * FROM data_table" 
train_df = spark.sql(sql) 

cmr_dict = { 'date': time.strftime('%a, %b %d, %Y'), 
      'description': '`cmrs` contains data from data_table', 
      'cmrs': train_df} 

with open('cmrs.pkl', mode='wb') as fp: 
    cpick.dump(cmr_dict, fp, cpick.HIGHEST_PROTOCOL) 

を使用するコードです。これらはJVM構造のプロキシです。データは含まれていません(計算の説明のみ)。

データをピクルする場合は、collectを入力し、結果をシリアル化します。

関連する問題