我有一个PySpark Dataframe input_dataframe ,如下所示:
<div>
<?php
require 'getMeasurementTypesByUser.php';
$option1 = isset($_GET['user']) ? $_GET['user'] : false;
if ($option1) {
$res = getMeasurementTypesByUser($_GET['user']);
echo '<form method="post" action=""><select id="measurement" name="measurement" onchange="this.form.submit();">';
echo '<option value="">Select Measurement</option>';
foreach ($res as $row) {
if ($row['MeasurementID'] != 1 && $row['MeasurementID'] != 2) {
echo '<option value="' . $row['MeasurementID'] . '">' . $row['MeasurementName'] . '</option>';
}else if($row['MeasurementID']== 1 ){
echo '<option value="1">Pressure</option>';
}
}
echo '</select></form>';
$UserID = htmlentities($_GET['user'], ENT_QUOTES, "UTF-8");
}
$option = isset($_POST['measurement']) ? $_POST['measurement'] : false;
if ($option) {
$MeasurementID = htmlentities($_POST['measurement'], ENT_QUOTES, "UTF-8");
if($MeasurementID==1){
$MeasurementID2=2;
}
}
echo '<form method="get" action=""><select id="user" name="user" onchange="this.form.submit();">';
echo '<option value="">Select User ID</option><option value="1">1</option><option value="2">2</option></select></form>';
?>
</div>
<!-- javascript -->
<script src="libs/jquery-3.2.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: "/Kostas/measurementData.php",
type: "POST",
data: {UserID: <?php echo json_encode($UserID); ?>, MeasurementID: $('#measurement').find(":selected").val()}, //here
success: function (data) {
console.log(data);
//goes on
我有另一个数据框 delta_dataframe ,它有来自input_dataframe的更新记录和一些新记录,如下所示:
**cust_id** **source_id** **value**
10 11 test_value
10 12 test_value2
在两个数据框架中,主键是 cust_id 和 source_id 的组合。
我必须生成一个新的数据框 output_dataframe ,它将包含来自 input_dataframe 的记录以及来自 delta_dataframe 的更新记录,因此我的最终数据框是如下:
**cust_id** **source_id** **value**
10 11 update_value
10 15 new_value2
有人可以建议我,我怎样才能在PySpark中实现它。任何帮助将不胜感激。
答案 0 :(得分:0)
您需要使用两列
加入input_dataframe
和delta_dataframe
output_df = input_df.join(delta_df, input_df['cust_id'] = delta_df['cust_id'] & input_df['source_id'] = delta_df['source_id'], 'left_outer')
然后只选择output_df
答案 1 :(得分:0)
我们可以使用外部联接并选择所需的数据框值
{
"my_index": {
"mappings": {
"my_type": {
"properties": {
"text": {
"type": "text",
"analyzer": "trigrams"
}
}
}
}
答案 2 :(得分:0)
根据主键减去两个数据帧。使用input_dataframe进行输出的内部连接。然后使用Delta_dataframe获取它的Uion。你会得到适当的输出。