我试图使用Datbricks'来启动Spark群集。 CSV包,这样我就可以创建镶木地板文件,也可以用Spark做一些事情。
这是在AWS EMR中完成的,所以我不认为我将这些选项放在正确的位置。
这是我想要在群集旋转时发送给群集的命令:spark-shell --packages com.databricks:spark-csv_2.10:1.4.0 --master yarn --driver-memory 4g --executor-memory 2g
。我试过把它放在Spark步骤上 - 这是正确的吗?
如果群集在没有正确安装的情况下启动,我该如何使用该包启动PySpark?这是对的:pyspark --packages com.databricks:spark-csv_2.10:1.4.0
?我无法判断它是否安装得当。不确定要测试的功能
关于实际使用包,这对于创建镶木地板文件是否正确:
df = sqlContext.read.format('com.databricks.spark.csv').options(header='false').load('s3n://bucketname/nation.tbl', schema = customSchema)
#is it this option1
df.write.parquet("s3n://bucketname/nation_parquet.parquet")
#or this option2
df.select('nation_id', 'name', 'some_int', 'comment').write.parquet('com.databricks.spark.csv').save('s3n://bucketname/nation_parquet.tbl')
我无法找到有关编写Parquet文件的最新文档(2015年中及之后)。
编辑:
好的,现在我不确定我是否正确创建了数据帧。如果我尝试对其运行一些select
查询并显示结果集,我就不会得到任何内容,而是会出现一些错误。这是我尝试运行的内容:
df = sqlContext.read.format('com.databricks.spark.csv').options(header='false').load('s3n://bucketname/nation.tbl', schema = customSchema)
df.registerTempTable("region2")
tcp_interactions = sqlContext.sql(""" SELECT nation_id, name, comment FROM region2 WHERE nation_id > 1 """)
tcp_interactions.show()
#get some weird Java error:
#Caused by: java.lang.NumberFormatException: For input string: "0|ALGERIA|0| haggle. carefully final deposits detect slyly agai|"