我对Apache Spark和Python比较陌生,想知道如何获得RDD的大小。我有一个RDD看起来像这样:
[[‘ID: 6993.1066',
'Time: 15:53:43',
'Lab: West',
'Lab-Tech: Nancy McNabb, ',
'\tBob Jones, Harry Lim, ',
'\tSue Smith, Will Smith, ',
'\tTerry Smith, Nandini Chandra, ',
]]
Run Code Online (Sandbox Code Playgroud)
pyspark中是否有方法或函数可以确定RDD中有多少个元组?上面的一个有7。
Scala类似于:myRDD.length。
我正在尝试读取其中包含一些实验室数据的镶木地板文件,然后将其加载到临时表中,对该表执行查询,然后将结果保存到 CSV 文件中,并以列和逗号分隔。这是我的代码:
lines = sqlContext.read.parquet("hdfs:////data/lab_01/")
lines.registerTempTable("test_data")
resultsDF = sqlContext.sql("select * from results")
header = ["lab_key", "tray_id", "time", "gene_id", "source"]
pandas.resultsDF.to_csv("/data/results.csv", sep=",", columns = header)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是这样的,它位于代码的最后一行:
AttributeError:模块“pandas”没有属性“resultsDF”
我正在寻找带有标题的 CSV 文件,如下所示:
lab_key tray_id time gene_id Source
10 26905972 1 8315 2
30 26984972 1 8669 2
30 26949059 1 1023 2
30 26905972 1 1062 1
Run Code Online (Sandbox Code Playgroud)
我的数据框 resultsDF 如下所示:
[Row(lab_key=1130, tray_id=26984905972, time=1, gene_id=833715, source=2),
Row(lab_key=1130, tray_id=26984905972, time=1, gene_id=866950, source=2),
Row(lab_key=1130, tray_id=26984905972, time=1, gene_id=1022843, source=2),
Run Code Online (Sandbox Code Playgroud) 我有三个数据帧,当我加入它时我收到错误.以下是3个数据帧:
名称:r_df第1栏:lab_key第2栏:第2帧
名称:f_df第1栏:lab_key第2栏:光学
名称:m_df第1栏:lab_key第2栏:res
所有三个数据帧都具有相同数量的行250,每个数据帧具有相同的lab_keys.
我的代码看起来像这样:
newDF = r_df.join(f_df, r_df.lab_key == f_df.lab_key).join(m_df, r_df.lab_key == m_df.lab_key).select('r_df.frame', 'f_df.optic', 'm_df.res')
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Py4JJavaError:调用o902.join时发生错误.:org.apache.spark.sql.AnalysisException:引用'lab_key'不明确,可以是:lab_key#1648,lab_key#1954.;
对问题可能不是很有帮助.我试图获得一个包含以下列的数据框:
第1栏:lab_key第
2 栏:第
3 栏:第4栏:第4栏
:res
你能帮我加入这三个数据框吗?