我试图使用以下方法从Shell中的特定字段中计数一些数据:
dfEquipmenttorecover.where($"key_number"==="12884612884").count
但我知道这个错误
<console>:51: error: type mismatch;
found : StringContext
required: ?{def $: ?}
Note that implicit conversions are not applicable because they are ambiguous:
both method
我有一个包含400+列的parquet文件,当我读取它时,附加到许多列的默认数据类型是字符串(可能是由于其他人指定的模式)。
我找不到类似于
inferSchema=True' #for spark.read.parquet, present for spark.read.csv
我试着改变
mergeSchema=True #but it doesn't improve the results
要手动将列转换为浮点型,我使用
df_temp.select(*(col(c).cast("float").alias(c) for c in df_temp.colu
更新:我错了,错误来源于矢量汇编程序,而不是随机林,或者两者兼而有之。但是错误/问题是一样的。当我在df_noNulls中使用vectorAssembler数据时,它说它不能矢量化列,因为其中有空值。
我看过这个问题的其他答案,解放了/借用/窃取了答案代码,试图让这个问题起作用。我的最终目标是RF/GB/其他ML建模,它不会好心地接受空值。我已经将下面的代码放在一起,以提取所有数字列,获取每个列的平均值,然后创建一个新的dataframe,它将两者连接起来,并用平均值替换所有的空值。然后,当我尝试将数字列的向量创建为随机林中的“功能”部分时,它会返回一个错误,即“组装的值不能为空”。
val
我需要将一个带有string列的dataframe连接到一个字符串数组中,这样如果数组中的值匹配,行就会连接起来。
我试过了,但我想这不是支持。还有别的办法吗?
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("test")
val spark = SparkSession.builder().config(sparkConf).g
我想用spark sql读取一个拼图文件,其中一列有混合数据类型(字符串和整数)。
val sqlContext = new SQLContext(sparkContext)
val df = sqlContext.read.parquet("/tmp/data")
这抛出了我的异常:Failed to merge incompatible data types IntegerType and StringType
有没有办法在读取过程中显式地对列进行类型转换?
为什么Spark2.3中的星火规划师更喜欢一种类型的合并连接而不是混搭的散列连接?换句话说,为什么spark.sql.join.preferSortMergeJoin配置属性是?杂乱的散列连接有什么问题?这是特定于星火,它是以分布式的方式进行计算,还是其他一些在联接算法中固有的东西?
您可以找到JoinSelection执行规划策略和中使用的属性,如下所示:
case ... if !conf.preferSortMergeJoin && ... =>
Seq(joins.ShuffledHashJoinExec(...))