我在YARN群集上使用Spark 1.3上的Pyspark。我正在使用管理节点执行Pyspark命令来创建DataFrame。然后,我试图将Spark Dataframe移动到管理节点上的单个CSV,但我找不到该文件。指定我的“home”目录似乎不起作用,并且它始终提供LOG消息,使我相信文件在群集中的另一个节点上完成。然而,我搜遍了所有节点而没有找到.csv文件;即使我尝试不止一次地执行'.save'命令,它也说它无法追加,这让我相信文件实际上是在某处创建的。以下是执行csv命令后日志的一部分:
INFO TaskSetManager: Finished task 0.0 in stage 8.0 (TID 6) in 2646 ms on <*child node DNS server*> (1/1)
INFO YarnScheduler: Removed TaskSet 8.0, whose tasks have all completed, from pool
INFO DAGScheduler: Job 4 finished: saveAsTextFile at package.scala:169, took 2.715508 s
我在命令行启动:
pyspark --packages com.databricks:spark-csv_2.11:1.2.0
然后执行以下操作以创建Dataframe并尝试在PySpark中导出。
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
sqlContext.setConf("spark.sql.parquet.binaryAsString","true")
smData = sqlContext.parquetFile("hdfs://<MGMT NODE IP and Folder directory>")
smData.registerTempTable("temp")
Minutes = sqlContext.sql("Select alt,tail From temp Where year = 2015 And month = 9 And day = 16 and asa is not null and CAST(alt as int) > 3046")
Minutes.save('minutes.csv','com.databricks.spark.csv')