【问题标题】:How to create pyspark rdd from hazelcast map如何从榛树地图创建 pyspark rdd
【发布时间】:2018-01-04 11:42:31
【问题描述】:

我正在编写 spark mlib,我需要从 hazelcast 地图中读取数据并希望从 hazelcast 地图中创建 RDD/数据集/数据框。

所以我在 hazelcast 地图中有键和值形式的数据。 我想用它创建 pyspark pair rdd,我不知道该怎么做。

这是我在 hazelcast 映射中以键值对形式拥有的数据-

key: '8e5d78d2-8feb-41cd-9e1a-166fbe11c569' 
value: '2,-0.425965884412454,0.960523044882985'
key: 'dfea4b0a-c6f8-4e14-8543-edc53a9d9e07'
value: '2,-1.15823309349523,0.877736754848451'

这是我从 hazelcast 地图中读取的 pyspark mlib 程序。

from pyspark.sql import SparkSession
from pyspark.sql.types import StringType
from pyspark.sql.types import *

import hazelcast, logging
from pyspark.rdd import RDD
config = hazelcast.ClientConfig()
config.network_config.addresses.append('localhost:5701')    
logging.basicConfig()
logging.getLogger().setLevel(logging.INFO)
client = hazelcast.HazelcastClient(config)

############################################

from pyspark import SparkContext, rdd
spark = SparkContext()

# Here my_map is hazelcast map how do I create RDD/dataframe/dataset from this map.
my_map = client.get_map("fraudinputs").blocking()

for key, value in my_map.items:
    print "key:", key, "value:", value

client.shutdown()

【问题讨论】:

    标签: python apache-spark pyspark hazelcast hazelcast-imap


    【解决方案1】:

    首先要做的是使用sparkContext.textFile读取文件

    rdd = sc.textFile("path to the data file")
    

    然后你把rdd分成key rddvalue rdd

    keys = rdd.filter(lambda x: x.find("key") != -1).map(lambda x: x.split("=")[1])
    values = rdd.filter(lambda x: x.find("value") != -1).map(lambda x: x.split("=")[1])
    

    最后一步是使用 zip 将它们组合在一起

    paired = keys.zip(values)
    

    你应该有以下输出

    (u" '8e5d78d2-8feb-41cd-9e1a-166fbe11c569' ", u" '2,-0.425965884412454,0.960523044882985'")
    (u" 'dfea4b0a-c6f8-4e14-8543-edc53a9d9e07'", u" '2,-1.15823309349523,0.877736754848451'")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多