我一直在我的 python 应用程序中使用 Jupyter Notebook。我经常使用几个实用函数。今天,我的解决方案是将所有这些函数复制到新的 python 笔记本中并执行我的新应用程序。我想编写一个 python 文件(例如 utility.py)并在该文件中编写所有例程函数。但是,我不确定如何调用或导入 utility.py 到 Jupyter Notebook 中。
utility.py
def f1(): do_something
def f2: do_something2
def f3: do_somthing3
Run Code Online (Sandbox Code Playgroud)
在 .ipynb 文件中
import utility.py
utility.f1()
utility.f2()
Run Code Online (Sandbox Code Playgroud) val ordersRDD = sc.textFile("/user/cloudera/sqoop_import/orders");
val ordersRDDStatus = ordersRDD.map( rec => (rec.split(",")(3), 1));
val countOrdersStatus = ordersRDDStatus.countByKey();
val output = countOrdersStatus.map(input => input._1 + "\t" + input._2);
Run Code Online (Sandbox Code Playgroud)
如何将Iterable [String]的输出保存到spark-scala中的hdfs。可迭代[String]
注意:输出不是RDD(我不能使用output.saveAsTextFile(“ hdfs-path”)
我想动态地在多个列上加入两个spark-scala数据帧.我会避免硬编码列名比较,如下面的陈述所示;
val joinRes = df1.join(df2, df1("col1") == df2("col1") and df1("col2") == df2("col2"))
Run Code Online (Sandbox Code Playgroud)
此查询的解决方案已存在于pyspark版本中 - 在以下链接中提供 PySpark DataFrame - 动态加入多个列
我想使用spark-scala编写相同的代码