我有一个ETL可以分析大数据,我所有的表都是带有Spark 2.2.X的DataFrames。现在,我必须添加数据治理以了解数据的来源。例如:
表A
| Col1 | Col2 |
| ---- | ---- |
| test | hello |
| test3 | bye |
表B
| Col1 | Col2 |
| ---- | ---- |
| test2 | hey |
| test3 | bye |
现在我有两个表,我要做的是Col1
和Col2 + Col2
的联接。结果表:
最终表
| Col1 | Col2 |
| ---- | ---- |
|test3 | byebye|
我的问题是,Spark DataFrame中是否有任何函数,API或某些不使我改变代码太多的东西,我可以显示我拥有的DataFrame中的所有转换?
答案 0 :(得分:1)
如果您需要快速解决方案,可以查看RDD#toDebugString
。您可以在rdd
上调用DataFrame
方法,然后通过此方法显示其沿袭。
以下是Jacek Laskowski's book "Mastering Apache Spark"中的一个示例:
scala> val wordCount = sc.textFile("README.md").flatMap(_.split("\\s+")).map((_, 1)).reduceByKey(_ + _)
wordCount: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[21] at reduceByKey at <console>:24
scala> wordCount.toDebugString
res13: String =
(2) ShuffledRDD[21] at reduceByKey at <console>:24 []
+-(2) MapPartitionsRDD[20] at map at <console>:24 []
| MapPartitionsRDD[19] at flatMap at <console>:24 []
| README.md MapPartitionsRDD[18] at textFile at <console>:24 []
| README.md HadoopRDD[17] at textFile at <console>:24 []
此摘录以及有关RDD沿袭和toDebugString
的详细说明可从here获得。