在pyspark

时间:2015-11-18 16:05:32

标签: python amazon-s3 amazon-ec2 apache-spark pyspark

Python的新手。

我想从S3读取一些XML文件并查询它们。我连接到AWS并且已经启动了一些EC2集群,但我不确定如何导入我需要的库 获取数据。

我认为使用xmlutils库从xml转换为json然后使用我有权访问的sqlcontext库中的read.json(见下文)

 converter = xml2json("S3 logs", "output.sql", encoding="utf-8")
 converter.convert()

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

logs = sqlContext.read.json("output.sql")
logs.registerAsTable("logs")

query_results = sqlContext.sql("SELECT * from logs...")

修改

我正在尝试使用这段代码从cloudera链接上获取在我的虚拟环境中安装xmlutils的Spark。 (已设置SparkConf和SparkContext)

def import_my_special_package(x):
    import my.special.package
    return x

int_rdd = sc.parallelize([1, 2, 3, 4])
int_rdd.map(lambda x: import_my_special_package(x))
int_rdd.collect()

我尝试将函数参数中的xmlutils和'xmlutils'作为x传递但是它不起作用。难道我做错了什么?感谢

1 个答案:

答案 0 :(得分:0)

默认情况下,在2015.03 AMI上安装了pip和virtualenv for Python 2.7 - https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/

上述网站显示了如何访问新AMI图像上的点数。