私の開発環境はcentos7、hbase 1.2.5、happybase 1.1.0、python 2.7、PyCharm、hadoop 2.7.3、spark 2.1です。 私は大きなデータソフトウェアを開発しています。 HBaseテーブルに値を入れる必要があります。値はSpark RDDの値です。コードは次のとおりです。happybaseを通じてhbaseテーブルに値を入れる方法は?
import happybase
from pyspark import SparkContext, SparkConf
connection = happybase.Connection('localhost')
table = connection.table('tablename')
conf = SparkConf().setAppName("myFirstSparkApp").setMaster("local")
sc = SparkContext(conf=conf)
distFile = sc.textFile("/inputFilePath/")
newLines = distFile.filter(lambda x: 'filter":' in x)
newLines = newLines.map(lambda line:line.split('"'))
# The following line is working. Insert a row into the table.
table.put(b'row-key0', {'billCode:': '222', 'trayCode:': '222', 'pipeline:': '333'})
# But the following line is not working. what is wrong? Why?
newLines.foreach(lambda x: table.put(b'row-key', {'billCode:': x[7], 'trayCode:': x[3], 'pipeline:': x[11]}))
最終行コードが機能していません。エラーメッセージは以下のとおりです。
はImportError: pickle.PicklingError cybinという名前のモジュール:はImportError::オブジェクトをシリアル化できませんでした
cybinという名前のモジュールは、私が火花+ happybase +のpythonの新しい開発者ですありません。それを解決する方法?親切に助けが必要です。ありがとうございました。
エラーメッセージを読んでください - それはあなたの質問と一緒には行きません – Drako
この行のコードはデバッグでは機能していません。 newLines.foreach(lambda x:table.put(b'row-key '、{' billCode: ':x [7]、' trayCode: ':x [3]、' pipeline: ':x [11] })) –