我想在包含日期列的dataframe上使用date_trunc
函数,这样我就可以创建新列,该列将提供记录与哪个季度相关联的信息。
我试过的东西如下:
import org.apache.spark.sql.functions._
val test = Seq(("2010-03-05"),("2018-01-16"),("2018-04-20")).toDF("TestDates")
display(test) //this displays the date in the notebook
val datetrunctest = test.withColumn("Quarter", date_trunc("QUARTER",$"TestDates"))
display(datetrunctest) //this gives me an error saying **error: not found: value date_trunc**
另外,当我尝试使用函数名的import语句时,它会给出如下错误:
import org.apache.spark.sql.functions.date_trunc
Error : value date_trunc is not a member of object org.apache.spark.sql.functions
val ddd = spark.sql("Select TestDates,date_trunc('QUARTER', TestDates) as QuarterDate from test.DailyDates")
display(ddd)
检查您正在使用的spark版本,
打开Spark shell终端并输入命令
sc.version或spark-submit--version
public static Column quarter(Column e)
import org.apache.spark.sql.functions._
val test = Seq(("2010-03-05"),("2018-01-16"),("2018-04-20")).toDF("TestDates")
val datetrunctest = test.withColumn("Quarter", quarter($"TestDates"))
在我的scala程序中,我有一个dataframe,其中有两列和(类型都为)。除此之外,我有一个先前定义的对象和一些方法和属性。在这里,我想要使用dataframe的当前值和中的属性向dataframe添加一个新列。 例如,如果我有下面的dataframe: 谢谢你。
我有一只熊猫df[见下文]。如何将函数中的值添加到新列“price”?
问题内容: 我有一个pandas df [见下文]。如何将函数中的值添加到新列“价格”中? 问题答案: 通常,您可以使用apply函数。如果函数仅需要一列,则可以使用: 如@EdChum建议。如果您的函数需要多列,则可以使用类似以下内容:
/spark/python/pyspark/sql/dataframe.py“,第1313行,在withColumn assert isinstance(col,Column)中,”col应该是Column“assertionerror:col应该是Column 如何使用自定义函数或randint函数为列生成随机值?
到目前为止我们只使用了C++内置的函数,然而也可以添加新函数。实际上我们已经见过一个函数定义了:main。main这个函数名很特殊,因为它表示程序开始执行的地方,但main函数的语法形式和其它函数定义一样: void 函数名(参数列表) { 语句 } 你可以为自己的函数任意定义名称,但不能命名为main或者其它C++关键字。参数列表指定了使用(或称为调用)新函数所需要提供的信息(如果有的话)
我目前有一个pyspark数据帧,其中一列包含一些数字行,我想使用我编写的函数来查找这些数字行,以返回一个信息字符串。我知道简单的方法是使用withCoulmn并定义一个UDF来从旧列创建一个新列,但是我的函数的某些方式使它不能注册为UDF。我可以根据旧列的值用新列创建一个新的数据框架,而不创建UDF吗?