Spark Dataset 2.0提供了两个功能createOrReplaceTempView和 createGlobalTempView.我无法理解两种功能之间的基本区别.
根据API文件:
createOrReplaceTempView:此临时视图的生命周期与用于创建此数据集的[[SparkSession]]相关联.
所以,当我调用时sparkSession.close(),定义将被销毁.这是真的吗?
createGlobalTempView:此临时视图的生命周期与此Spark应用程序绑定.
何时会破坏这种类型的视图?任何例子.喜欢sparkSession.close()?
sort和orderBy spark DataFrame有什么区别?
scala> zips.printSchema
root
|-- _id: string (nullable = true)
|-- city: string (nullable = true)
|-- loc: array (nullable = true)
| |-- element: double (containsNull = true)
|-- pop: long (nullable = true)
|-- state: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
以下命令产生相同的结果:
zips.sort(desc("pop")).show
zips.orderBy(desc("pop")).show
Run Code Online (Sandbox Code Playgroud) 我有四个节点solrcloud安装版本4.10和我的集合有4个分片,2个副本.我的应用程序提供实时数据摄取的搜索功能,数据摄取和搜索过程并行运行.
每天数据加载大约2~3MM记录(插入/更新操作),总文件数为80MM +.
我们面临的问题是solr在数据摄取的高峰时间内返回非常不一致的记录计数.
示例查询:
for i in `seq 1 50`;
do
curl 'http://localhost:8888/solr/OPTUM/select?q=*:*&wt=json&indent=true'|grep numFound|rev|cut -d'{' -f1 |rev
done
Run Code Online (Sandbox Code Playgroud)
响应numfound变量显示有时非常少的文档计数然后实际存在于solr中.
请建议我是否需要进行任何配置更改以获得一致的计数.
我刚刚开始学习JS,并理解找到一个因素的概念.但是,这段代码就是我到目前为止所拥有的.我有str变量,只输出第一个因素,即2.我试图将每个(int)添加到str作为因素列表.下面的代码片段有什么问题?
function calculate(num) {
var str = "";
var int = 2;
if (num % int == 0) {
str = str + int;
int++;
} else {
int++;
}
alert(str);
}
calculate(232);
Run Code Online (Sandbox Code Playgroud) 情况就是这样.我正在尝试使用select语法从最后一天获取数据(今天我们有21.10因此我应该有20.10日期查询的数据将成为Talend中ETL过程的一部分所以我不能简单地做where date = '2016-10-20')问题是数据源中的所有列都是VARCHAR或STRING类型 - 日期也是.来源是Hive Hadoop.
我的代码:
select
cast(to_date(from_unixtime(unix_timestamp(dzien ,'yyyyMMdd'), 'yyyy-MM-dd')) as date),
count(ns_utc) as ILOSC_ODSLON
from portal.portal_data
where
portal_data.opl_ev_ty is null
and portal_data.opl_ev_as is null
and cast(to_date(from_unixtime(unix_timestamp(dzien ,'yyyyMMdd'), 'yyyy-MM-dd')) as date) = CAST(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))as date) - interval '1' day
GROUP BY
cast(to_date(from_unixtime(unix_timestamp(dzien ,'yyyyMMdd'), 'yyyy-MM-dd')) as date)
Run Code Online (Sandbox Code Playgroud)
使用该代码查询返回没有exept列名称.问题可能出在这一部分= CAST(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))as date) - interval '1' day.
我做了一些测试.当我运行此查询时
select CAST(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))as date) - interval '1' day
Run Code Online (Sandbox Code Playgroud)
结果是2016-10-20 00:00:00.0和部分00:00:00.0可能会破坏我的查询,因为在主查询中而不是= CAST(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))as date) - interval '1' day我放置条件= '2016-10-20' …
有没有办法在 REPL ( jshell) 上执行 java 命令作为内联命令而不启动它?
例如 Perl 内联命令
$perl -e 'printf("%06d", 19)'
000019
Run Code Online (Sandbox Code Playgroud)
我必须启动 jshell 才能运行任何命令:
$jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> String.format("%06d", 19)
$1 ==> "000019"
Run Code Online (Sandbox Code Playgroud)
我在这里发现了类似的问题,但为单个命令创建单独的文件并不是可行的解决方案jsh。
同一篇文章的另一个解决方案是:echo "1+2"|jshell
temp=`echo 'String.format("%06d", 19)'|jshell`
echo $temp
Run Code Online (Sandbox Code Playgroud)
哎哟输出
| Welcome to JShell -- Version 9 | For an introduction type: /help intro jshell> String.format("%06d", 19) $1 ==> "000019" jshell>
Run Code Online (Sandbox Code Playgroud)
我$temp只期待打印000019。
下面的代码添加了res列表元素.我的问题是scala内部如何翻译.::符号?
代码段:
var res = List[(Int, Int)]()
res .::= (1, 2)
res .::= (3, 4)
res
Run Code Online (Sandbox Code Playgroud)
输出:
res56:List [(Int,Int)] = List((1,2),(3,4))
我无法弄清楚编码器从 RDD 下面创建数据集的正确实现?
例如
JavaRDD<Integer[]>rdd= sparkContext.parallelize(
Arrays.asList(new Integer[][]{new Integer[]{1,2},
new Integer[]{3,4}
,new Integer[]{6,7}}));
Run Code Online (Sandbox Code Playgroud)
以下实施失败-
DataSet<Integer> ds = sqlContext.createDataset(rdd.rdd(),Encoders.bean(Integer[].class));
Run Code Online (Sandbox Code Playgroud)
线程“main”中的异常 java.lang.AssertionError: assertion failed at scala.Predef$.assert(Predef.scala:165) at org.apache.spark.sql.catalyst.encoders.ExpressionEncoder$.javaBean(ExpressionEncoder.scala: 90) 在 org.apache.spark.sql.Encoders$.bean(Encoders.scala:142) 在 org.apache.spark.sql.Encoders.bean(Encoders.scala)
如何为数组类型创建编码?谢谢!
我在我的Windows机器上没有管理员权限,我正在尝试安装Go,需要管理员权限才能完成安装.
有没有办法在没有管理员权限的Windows上安装GO?
我可以用saveAsTextFile语法将文件保存到本地系统吗?这就是我编写保存文件的语法: insert_df.rdd.saveAsTextFile("<local path>")
当我正在尝试这样做时,我得到错误,因为没有权限,但我拥有该特定本地路径的所有权限,看起来它将文件视为HDFS文件.