是否可以从2个不同的源创建数据帧并对其进行操作。
例如,
local records = {}
s = "A001BBD0"
for c in string.gmatch(s, "%w") do
records[c] = records[c] and records[c] + 1 or 1
end
for k,v in pairs(records) do
if(v > 1) then -- print repeated chars
print(k,v)
end
end
如果可能的话,这样做意味着什么?
答案 0 :(得分:1)
是。可以从不同的数据源读取数据并对其执行操作。 实际上,许多应用程序都需要这些要求。
df1.join(df2).where("df1Key" === "df2Key")
这将执行笛卡尔连接,然后对其应用过滤器。
df1.join(df2,$"df1Key" === $"df2Key")
这应该提供相同的输出。
答案 1 :(得分:1)
Dataframe是与源无关的抽象。我鼓励您阅读有关RDD和wiki
的原始文章抽象是与源无关的,并且跟踪数据的位置和底层DAG操作。数据框API提供了RDD的架构。
您可以从任何来源获取数据框,但是它们均被均化为具有相同的API。 Dataframe API提供了Dataframe阅读器接口,任何基础源都可以实现该接口,以在其之上创建数据帧。 Here是用于数据框的cassandra连接器的另一个示例
一个警告是从不同来源检索数据的速度可能有所不同。例如,如果您的数据在s3中,而在HDFS中则为数据,那么在HDFS顶部创建的数据框上的操作可能会更快。但是,尽管如此,您仍可以对从不同来源创建的数据框执行任何联接。