我有几个关于MongoDB的问题:
(1)索引是否有助于投影?
(2)我已经为一个集合分配了许多索引,并尝试使用sort运行查找,然后使用explain,它BtreeCursor在排序字段上显示索引.
可能是其他索引在查询部分中有所帮助,explain只是没有显示它,因为它只显示了帮助查找的最后一个索引?
或者explain应该显示有助于查询,排序等的所有索引?
谢谢.
我有一个从 CSV 文件列表创建的 Hive 外部表。
如果我对表行(或多行)执行 Hive 删除,相应的 CSV 记录也会被删除吗?
我在Spark中处理包含csv.gz文件的S3文件夹.每个csv.gz文件都有一个包含列名的标头.
我将包含的数据加载到Spark的方式是引用路径/文件夹,如下所示:
val rdd = sc.textFile("s3://.../my-s3-path")
Run Code Online (Sandbox Code Playgroud)
如何跳过每个文件中的标题,以便我只能处理这些值?
谢谢
我需要定义一个生成混淆矩阵的函数。所以我有两个向量y_label和y_predict,它们的元素值为 0、1、2。该函数的目标是创建标签计数:
| 0 | 1 | 2 |
--------------
0 | | | |
--------------
1 | | | |
--------------
2 | | | |
--------------
Run Code Online (Sandbox Code Playgroud)
例如,cm[0,1]对于每个 i ,应该包含 y_label[i] = 0 和 y_predict[i] = 1 的元素计数。
到目前为止,这就是我所做的:
def get_confusion_matrix(y_label, y_fit):
cm = np.ndarray([3,3])
for i in range(3):
for j in range(3):
cm[i, j] = ....
return cm
Run Code Online (Sandbox Code Playgroud)
当然,我可以轻松地进行多级for循环来计数,但是如果 Python / numpy 中有捷径,我想避免这种情况。
我也在考虑制作y_label和y_predict合并成为一个元组数组,然后使用 dict-zip 技术,类似于这里: …
我有一个txn_df包含货币交易记录的数据框(称之为),这里是这个问题中的重要列:
txn_year txn_month custid withdraw deposit
2011 4 123 0.0 100.0
2011 5 123 0.0 0.0
2011 6 123 0.0 0.0
2011 7 123 50.1 0.0
2011 8 123 0.0 0.0
Run Code Online (Sandbox Code Playgroud)
还假设我们在这里有多个客户。withdraw和deposit0.0 值意味着没有交易发生。我想要做的是生成一个新列,指示自发生交易以来已经发生了多少个月。类似的东西:
txn_year txn_month custid withdraw deposit num_months_since_last_txn
2011 4 123 0.0 100.0 0
2011 5 123 0.0 0.0 1
2011 6 123 0.0 0.0 2
2011 7 123 50.1 0.0 3
2011 8 123 0.0 0.0 1
Run Code Online (Sandbox Code Playgroud)
唯一的解决方法,到目前为止我能想到的是,以产生新的列has_txn(其是1/0或真/假)时的任一个withdraw和 …
假设我有一个名为的指令my-directive.
如何访问或操作指令代码中的指令标记之间的文本,如下所示:
<my-directive> Custom Text <my-directive>
我的指令代码:
app.directive('myDirective', function() {
return {
...
template: '<div>...Custom Text somewhere inside div... </div>'
};
);
Run Code Online (Sandbox Code Playgroud) 我正在使用Twitter4J从他/她的个人资料中检索用户的位置.我有一组地理坐标使用此调用形成多边形边界(通常为4个或更多坐标):
// Status tweet
Place place = tweet.getPlace();
GeoLocation[][] box = place.getBoundingBoxCoordinates();
Run Code Online (Sandbox Code Playgroud)
有没有办法计算这个区域/多边形/边界的中心(或近中心,或至少包含一个点)?是否有Java API?
是否有来自此帖子的 Java代码的Java等价物:
var bounds = new google.maps.LatLngBounds();
bounds.extend(results[0].geometry.location);
var center = bounds.getCenter();
Run Code Online (Sandbox Code Playgroud) 我是Oozie的新手,我已经阅读了一些Oozie shell动作示例,但这让我对某些事情感到困惑.
我见过的例子中没有<file>标签.
一些例子,像Cloudera的位置,重复文件标签shell脚本:
<shell xmlns="uri:oozie:shell-action:0.2">
<exec>check-hour.sh</exec>
<argument>${earthquakeMinThreshold}</argument>
<file>check-hour.sh</file>
</shell>
Run Code Online (Sandbox Code Playgroud)
在Oozie的网站上,将shell脚本(${EXEC}来自job.properties 的引用,指向script.sh文件)写入两次,用#分隔.
<shell xmlns="uri:oozie:shell-action:0.1">
...
<exec>${EXEC}</exec>
<argument>A</argument>
<argument>B</argument>
<file>${EXEC}#${EXEC}</file>
</shell>
Run Code Online (Sandbox Code Playgroud)
还有一些例子我看过路径(HDFS或本地?)script.sh#script.sh在<file>标签内部之前的位置.
<shell xmlns="uri:oozie:shell-action:0.1">
...
<exec>script.sh</exec>
<argument>A</argument>
<argument>B</argument>
<file>/path/script.sh#script.sh</file>
</shell>
Run Code Online (Sandbox Code Playgroud)
据我所知,任何shell脚本文件都可以包含在工作流HDFS路径中(workflow.xml所在的路径).
有人能解释这些例子中的差异,以及如何<exec>,<file>,script.sh#script.sh,和/path/script.sh#script.sh使用?
我有需要使用 Groovy 处理的 JSON。我非常确定 JSON 只有一个键,格式如下:
{ rootKey: [...] }
Run Code Online (Sandbox Code Playgroud)
其中rootKey代表不同的值(例如“客户”、“商店”等)。
假设我使用了 JsonSlurper:
def map = jsonSlurper.parseText(myjson)
Run Code Online (Sandbox Code Playgroud)
如何获取 rootKey 字符串?
我有一个与 Cloud Storage 和 BigQuery 交互的 Cloud Function,它们都属于同一个项目。从命令行部署 Cloud Function 时我遵循的通常方法是:
$ gcloud functions deploy my_function ... --set-env-vars GOOGLE_APPLICATION_CREDENTIALS=my_project_credentials.json
Run Code Online (Sandbox Code Playgroud)
my_project_credentials.json包含服务帐号和密钥以允许访问 Cloud Storage 和 BigQuery 的 json 密钥文件在哪里。
由于这是我从那时起一直采用的方式,因此我需要另一种方式来完全避免此 json 凭据文件(因为这些交互服务无论如何都属于同一个 Google Cloud 项目)。有这样的方法吗?我对谷歌云有点陌生,所以我不熟悉 IAM 的来龙去脉。
(我需要这个的另一个原因是,我有一个客户不喜欢我作为开发人员访问该 json 密钥,而且他/她不希望该 json 密钥与函数代码一起部署。请提供关于如何在 IAM 中执行此操作的一些详细信息,尤其是 BigQuery 和 Cloud Storage,因为我也无法控制 IAM)。
google-cloud-platform google-cloud-functions google-cloud-iam
我在Oozie中遇到过几个SparkAction作业的例子,其中大多数都是用Java编写的.我编辑了一下并在Cloudera CDH Quickstart 5.4.0(使用Spark版本1.4.0)中运行该示例.
workflow.xml
<workflow-app xmlns='uri:oozie:workflow:0.5' name='SparkFileCopy'>
<start to='spark-node' />
<action name='spark-node'>
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark"/>
</prepare>
<master>${master}</master>
<mode>${mode}</mode>
<name>Spark-FileCopy</name>
<class>org.apache.oozie.example.SparkFileCopy</class>
<jar>${nameNode}/user/${wf:user()}/${examplesRoot}/apps/spark/lib/oozie-examples.jar</jar>
<arg>${nameNode}/user/${wf:user()}/${examplesRoot}/input-data/text/data.txt</arg>
<arg>${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark</arg>
</spark>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Workflow failed, error
message[${wf:errorMessage(wf:lastErrorNode())}]
</message>
</kill>
<end name='end' />
</workflow-app>
Run Code Online (Sandbox Code Playgroud)
job.properties
nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
master=local[2]
mode=client
examplesRoot=examples
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/spark
Run Code Online (Sandbox Code Playgroud)
Oozie工作流示例(在Java中)能够完成并完成其任务.
不过我spark-submit用Python/PySpark 编写了一份工作.我试着去除<class>罐子
<jar>my_pyspark_job.py</jar>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行Oozie-Spark作业时,我在日志中出错:
Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [2]
Run Code Online (Sandbox Code Playgroud)
我想知道如果我使用Python/PySpark,我应该放置什么<class>和<jar>标签?
这个问题与此有关.
我在Spark中处理包含csv.gz文件的S3文件夹.每个csv.gz文件都有一个包含列名的标头.这已通过上述SO链接解决,解决方案如下所示:
val rdd = sc.textFile("s3://.../my-s3-path").mapPartitions(_.drop(1))
Run Code Online (Sandbox Code Playgroud)
现在的问题是它看起来有些文件最后有换行符('\n')(我们假设我们不确定哪个文件).因此,在将RDD转换为DataFrame时,我遇到了一些错误.现在的问题是:
如果是'\n',我如何摆脱每个文件的最后一行?
我hour在shell中有一个包含UNIX时间的变量.
然后如果要格式化这个小时,我使用
date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z"
Run Code Online (Sandbox Code Playgroud)
哪个有效.但是,我想将上面表达式的结果存储到另一个变量中,所以当我这样做时:
formatted=$(( date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z" ))
Run Code Online (Sandbox Code Playgroud)
这是行不通的.我不知道如何hour在评估表达式中引用变量(无论它被调用).